Merge pull request #3253 from datauwu/tar-fix-oob

This commit is contained in:
Dustin L. Howett authored and GitHub committed 2026-07-06 21:00:05 -05:00
commit c16162083a
1 file changed
+9 -9
+9 -9
View File
@@ -3511,17 +3511,17 @@ tar_atol_base_n(const char *p, size_t char_cnt, int base)
}
l = 0;
if (char_cnt != 0) {
while (char_cnt != 0) {
digit = *p - '0';
while (digit >= 0 && digit < base && char_cnt != 0) {
if (archive_ckd_mul_i64(&l, l, base) ||
archive_ckd_add_i64(&l, l, sign * digit)) {
/* Truncate on overflow. */
return sign < 0 ? INT64_MIN : INT64_MAX;
}
digit = *++p - '0';
char_cnt--;
if (digit < 0 || digit >= base)
break;
if (archive_ckd_mul_i64(&l, l, base) ||
archive_ckd_add_i64(&l, l, sign * digit)) {
/* Truncate on overflow. */
return sign < 0 ? INT64_MIN : INT64_MAX;
}
p++;
char_cnt--;
}
return l;
}