Set errno to 0 before calling strtoimax/strtol and check its value
afterwards.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
if (string == NULL || *string == '\0')
return (ARCHIVE_WARN);
+ errno = 0;
*numberp = strtoimax(string, &end, 10);
if (end == string || *end != '\0' || errno == EOVERFLOW) {
*numberp = 0;
}
char *end = NULL;
+ errno = 0;
long lvl = strtol(value, &end, 10);
- if (end == NULL || *end != '\0') {
+ if (errno != 0 || end == NULL || *end != '\0') {
archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC,
"parsing compression-level option value failed `%s'", value);
return (ARCHIVE_FAILED);