aboutsummaryrefslogtreecommitdiffstats
path: root/strtotimespec.c
diff options
context:
space:
mode:
Diffstat (limited to 'strtotimespec.c')
-rw-r--r--strtotimespec.c6
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) {