From: Joerg Sonnenberger Date: Sun, 5 Dec 2010 00:54:03 +0000 (-0500) Subject: Adjust cut-off condition to correctly return INT_MAX for large integers. X-Git-Tag: v3.0.0a~830 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=88d19ea4442c6b9cd5c74777d31facb9d764437e;p=thirdparty%2Flibarchive.git Adjust cut-off condition to correctly return INT_MAX for large integers. Found by Maksymilian Arciemowicz . SVN-Revision: 2810 --- diff --git a/libarchive/archive_acl.c b/libarchive/archive_acl.c index d4195480b..54080b0ed 100644 --- a/libarchive/archive_acl.c +++ b/libarchive/archive_acl.c @@ -626,9 +626,10 @@ isint_w(const wchar_t *start, const wchar_t *end, int *result) while (start < end) { if (*start < '0' || *start > '9') return (0); - if (n > (INT_MAX / 10)) + if (n > (INT_MAX / 10) || + (n == INT_MAX / 10 && (*start - '0') > INT_MAX % 10)) { n = INT_MAX; - else { + } else { n *= 10; n += *start - '0'; }