153aa9179Sopenharmony_ciFrom 3cc900f0989908f50d5544f00ede0f0236c4f350 Mon Sep 17 00:00:00 2001 253aa9179Sopenharmony_ciFrom: Nick Wellnhofer <wellnhofer@aevum.de> 353aa9179Sopenharmony_ciDate: Thu, 16 Feb 2023 11:50:52 +0100 453aa9179Sopenharmony_ciSubject: [PATCH] encoding: Cast toupper argument to unsigned char 553aa9179Sopenharmony_ci 653aa9179Sopenharmony_ciFixes undefined behavior. 753aa9179Sopenharmony_ci 853aa9179Sopenharmony_ciAlso cast return value explicitly to fix implicit-integer-sign-change 953aa9179Sopenharmony_cichecks. 1053aa9179Sopenharmony_ci 1153aa9179Sopenharmony_ciReference:https://github.com/GNOME/libxml2/commit/3cc900f0989908f50d5544f00ede0f0236c4f350 1253aa9179Sopenharmony_ciConflict:NA 1353aa9179Sopenharmony_ci--- 1453aa9179Sopenharmony_ci encoding.c | 10 +++++----- 1553aa9179Sopenharmony_ci 1 file changed, 5 insertions(+), 5 deletions(-) 1653aa9179Sopenharmony_ci 1753aa9179Sopenharmony_cidiff --git a/encoding.c b/encoding.c 1853aa9179Sopenharmony_ciindex 8b98f7d..d43361a 100644 1953aa9179Sopenharmony_ci--- a/encoding.c 2053aa9179Sopenharmony_ci+++ b/encoding.c 2153aa9179Sopenharmony_ci@@ -1038,7 +1038,7 @@ xmlGetEncodingAlias(const char *alias) { 2253aa9179Sopenharmony_ci return(NULL); 2353aa9179Sopenharmony_ci 2453aa9179Sopenharmony_ci for (i = 0;i < 99;i++) { 2553aa9179Sopenharmony_ci- upper[i] = toupper(alias[i]); 2653aa9179Sopenharmony_ci+ upper[i] = (char) toupper((unsigned char) alias[i]); 2753aa9179Sopenharmony_ci if (upper[i] == 0) break; 2853aa9179Sopenharmony_ci } 2953aa9179Sopenharmony_ci upper[i] = 0; 3053aa9179Sopenharmony_ci@@ -1073,7 +1073,7 @@ xmlAddEncodingAlias(const char *name, const char *alias) { 3153aa9179Sopenharmony_ci return(-1); 3253aa9179Sopenharmony_ci 3353aa9179Sopenharmony_ci for (i = 0;i < 99;i++) { 3453aa9179Sopenharmony_ci- upper[i] = toupper(alias[i]); 3553aa9179Sopenharmony_ci+ upper[i] = (char) toupper((unsigned char) alias[i]); 3653aa9179Sopenharmony_ci if (upper[i] == 0) break; 3753aa9179Sopenharmony_ci } 3853aa9179Sopenharmony_ci upper[i] = 0; 3953aa9179Sopenharmony_ci@@ -1175,7 +1175,7 @@ xmlParseCharEncoding(const char* name) 4053aa9179Sopenharmony_ci name = alias; 4153aa9179Sopenharmony_ci 4253aa9179Sopenharmony_ci for (i = 0;i < 499;i++) { 4353aa9179Sopenharmony_ci- upper[i] = toupper(name[i]); 4453aa9179Sopenharmony_ci+ upper[i] = (char) toupper((unsigned char) name[i]); 4553aa9179Sopenharmony_ci if (upper[i] == 0) break; 4653aa9179Sopenharmony_ci } 4753aa9179Sopenharmony_ci upper[i] = 0; 4853aa9179Sopenharmony_ci@@ -1351,7 +1351,7 @@ xmlNewCharEncodingHandler(const char *name, 4953aa9179Sopenharmony_ci return(NULL); 5053aa9179Sopenharmony_ci } 5153aa9179Sopenharmony_ci for (i = 0;i < 499;i++) { 5253aa9179Sopenharmony_ci- upper[i] = toupper(name[i]); 5353aa9179Sopenharmony_ci+ upper[i] = (char) toupper((unsigned char) name[i]); 5453aa9179Sopenharmony_ci if (upper[i] == 0) break; 5553aa9179Sopenharmony_ci } 5653aa9179Sopenharmony_ci upper[i] = 0; 5753aa9179Sopenharmony_ci@@ -1689,7 +1689,7 @@ xmlFindCharEncodingHandler(const char *name) { 5853aa9179Sopenharmony_ci * Check first for directly registered encoding names 5953aa9179Sopenharmony_ci */ 6053aa9179Sopenharmony_ci for (i = 0;i < 99;i++) { 6153aa9179Sopenharmony_ci- upper[i] = toupper(name[i]); 6253aa9179Sopenharmony_ci+ upper[i] = (char) toupper((unsigned char) name[i]); 6353aa9179Sopenharmony_ci if (upper[i] == 0) break; 6453aa9179Sopenharmony_ci } 6553aa9179Sopenharmony_ci upper[i] = 0; 6653aa9179Sopenharmony_ci-- 6753aa9179Sopenharmony_ci2.27.0 6853aa9179Sopenharmony_ci 69