From: Karel Zak Date: Fri, 14 Aug 2020 09:13:50 +0000 (+0200) Subject: libfdisk: (script) fix possible partno overflow X-Git-Tag: v2.37-rc1~515 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1f50296c0f2384f474e3bbd92926edea53c3bace;p=thirdparty%2Futil-linux.git libfdisk: (script) fix possible partno overflow Addresses: https://oss-fuzz.com/testcase-detail/5740890480705536 Signed-off-by: Karel Zak --- diff --git a/libfdisk/src/script.c b/libfdisk/src/script.c index 74ff43b739..37a5a3edc3 100644 --- a/libfdisk/src/script.c +++ b/libfdisk/src/script.c @@ -959,7 +959,7 @@ static int next_string(char **s, char **str) static int partno_from_devname(char *s) { - int pno; + intmax_t num; size_t sz; char *end, *p; @@ -975,10 +975,15 @@ static int partno_from_devname(char *s) return -1; end = NULL; errno = 0; - pno = strtol(p, &end, 10); + num = strtol(p, &end, 10); if (errno || !end || p == end) return -1; - return pno - 1; + + if (num < INT32_MIN || num > INT32_MAX) { + errno = ERANGE; + return -1; + } + return num - 1; } #define FDISK_SCRIPT_PARTTYPE_PARSE_FLAGS \