strtonum(): POSIX strtoll() returns EINVAL, check for that too

From FreeBSD.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
Joachim Nilsson
2018-12-10 09:43:20 +01:00
parent 7e8534e36b
commit b15a14e920
+1 -1
View File
@@ -58,7 +58,7 @@ strtonum(const char *numstr, long long minval, long long maxval,
error = INVALID;
} else {
ll = strtoll(numstr, &ep, 10);
if (numstr == ep || *ep != '\0')
if (errno == EINVAL || numstr == ep || *ep != '\0')
error = INVALID;
else if ((ll == LLONG_MIN && errno == ERANGE) || ll < minval)
error = TOOSMALL;