From fbc4b11da543753b3b803e5546f56e26ec90c2a7 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 9 Apr 2024 21:11:02 +0200 Subject: Make sure to call isdigit and isspace with unsigned char Casting to Int32 or int could create negative values. Which isspace and isdigit don't handle. SEI CERT C Coding Standard STR37-C. Resolve by casting to UChar or unsigned char instead of Int32 or int. https://sourceware.org/bugzilla/show_bug.cgi?id=28283 --- bzip2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'bzip2.c') diff --git a/bzip2.c b/bzip2.c index 1538faf..9ef7536 100644 --- a/bzip2.c +++ b/bzip2.c @@ -1767,8 +1767,8 @@ void addFlagsFromEnvVar ( Cell** argList, Char* varName ) if (p[i] == 0) break; p += i; i = 0; - while (isspace((Int32)(p[0]))) p++; - while (p[i] != 0 && !isspace((Int32)(p[i]))) i++; + while (isspace((UChar)(p[0]))) p++; + while (p[i] != 0 && !isspace((UChar)(p[i]))) i++; if (i > 0) { k = i; if (k > FILE_NAME_LEN-10) k = FILE_NAME_LEN-10; for (j = 0; j < k; j++) tmpName[j] = p[j]; -- cgit v1.2.3-55-g6feb