cast to unsigned char before ctype calls in image readers (#3245)
diff --git a/apps/shared/avifjpeg.c b/apps/shared/avifjpeg.c
index d9a5e6e..4a557cb 100644
--- a/apps/shared/avifjpeg.c
+++ b/apps/shared/avifjpeg.c
@@ -766,7 +766,7 @@
// Make sure that remaining characters (if any) are only whitespace.
const int len = (int)strlen(textValues[i]);
while (charsRead < len) {
- if (!isspace(textValues[i][charsRead])) {
+ if (!isspace((unsigned char)textValues[i][charsRead])) {
return AVIF_FALSE; // Invalid character.
}
++charsRead;
diff --git a/apps/shared/avifpng.c b/apps/shared/avifpng.c
index 794e8ef..9d7fee5 100644
--- a/apps/shared/avifpng.c
+++ b/apps/shared/avifpng.c
@@ -38,7 +38,7 @@
++i;
continue;
}
- if (!isxdigit(hexString[i]) || !isxdigit(hexString[i + 1])) {
+ if (!isxdigit((unsigned char)hexString[i]) || !isxdigit((unsigned char)hexString[i + 1])) {
avifRWDataFree(bytes);
fprintf(stderr, "Metadata extraction failed: invalid character at %" AVIF_FMT_ZU "\n", i);
return AVIF_FALSE;