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