From 7eb08ae15d89d40de159ebbb5462fa06a9787642 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Thomas=20Wei=C3=9Fschuh?= Date: Sun, 24 Sep 2023 23:43:44 +0200 Subject: [PATCH] lib/timeutils: (parse_timestamp_reference) report errors on overflow MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Instead of silently returning '0' on 'minus'-underflow and silently wrapping on 'plus'-overflow return ERANGE. Signed-off-by: Thomas Weißschuh --- lib/timeutils.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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; -- 2.47.2