diff options
Diffstat (limited to 'plugins/utils.c')
-rw-r--r-- | plugins/utils.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/plugins/utils.c b/plugins/utils.c index 7e14b6e..e871c5f 100644 --- a/plugins/utils.c +++ b/plugins/utils.c | |||
@@ -230,13 +230,21 @@ bool is_intnonneg (char *number) { | |||
230 | */ | 230 | */ |
231 | bool is_int64(char *number, int64_t *target) { | 231 | bool is_int64(char *number, int64_t *target) { |
232 | errno = 0; | 232 | errno = 0; |
233 | uint64_t tmp = strtoll(number, NULL, 10); | 233 | char *endptr = { 0 }; |
234 | |||
235 | int64_t tmp = strtoll(number, &endptr, 10); | ||
234 | if (errno != 0) { | 236 | if (errno != 0) { |
235 | return false; | 237 | return false; |
236 | } | 238 | } |
239 | |||
240 | if (*endptr == '\0') { | ||
241 | return 0; | ||
242 | } | ||
243 | |||
237 | if (tmp < INT64_MIN || tmp > INT64_MAX) { | 244 | if (tmp < INT64_MIN || tmp > INT64_MAX) { |
238 | return false; | 245 | return false; |
239 | } | 246 | } |
247 | |||
240 | if (target != NULL) { | 248 | if (target != NULL) { |
241 | *target = tmp; | 249 | *target = tmp; |
242 | } | 250 | } |