From: Thomas Weißschuh Date: Sun, 24 Sep 2023 21:43:44 +0000 (+0200) Subject: lib/timeutils: (parse_timestamp_reference) report errors on overflow X-Git-Tag: v2.40-rc1~230^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7eb08ae15d89d40de159ebbb5462fa06a9787642;p=thirdparty%2Futil-linux.git lib/timeutils: (parse_timestamp_reference) report errors on overflow Instead of silently returning '0' on 'minus'-underflow and silently wrapping on 'plus'-overflow return ERANGE. Signed-off-by: Thomas Weißschuh --- diff --git a/lib/timeutils.c b/lib/timeutils.c index 3ed506a7df..b791c3f482 100644 --- a/lib/timeutils.c +++ b/lib/timeutils.c @@ -373,11 +373,13 @@ static int parse_timestamp_reference(time_t x, const char *t, usec_t *usec) ret += (usec_t) x * USEC_PER_SEC; + if (minus > ret) + return -ERANGE; + if ((ret + plus) < ret) + return -ERANGE; + ret += plus; - if (ret > minus) - ret -= minus; - else - ret = 0; + ret -= minus; *usec = ret;