diff options
Diffstat (limited to 'strtotimespec.c')
-rw-r--r-- | strtotimespec.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/strtotimespec.c b/strtotimespec.c index 9c6a6e0..d6bd64c 100644 --- a/strtotimespec.c +++ b/strtotimespec.c @@ -43,12 +43,10 @@ libsimple_strtotimespec(struct timespec *restrict ts, const char *restrict s, ch } for (; isdigit(*s); s++) { - if (sec < TIME_MIN / 10) + if (LIBSIMPLE_SMUL_OVERFLOW_AN_BP(sec, 10, &sec, TIME_MIN, TIME_MAX)) goto overflow_integer; - sec *= 10; - if (sec < TIME_MIN + (*s & 15)) + if (LIBSIMPLE_SSUB_OVERFLOW_B_POS(sec, (time_t)(*s & 15), &sec, TIME_MIN, TIME_MAX)) goto overflow_integer; - sec -= *s & 15; } if (!neg) { |