File fix-char-range.patch of Package paho-mqtt-c

From bba72469721fd3c7628fda61e3081f802fe73907 Mon Sep 17 00:00:00 2001
From: Ian Craggs <icraggs@gmail.com>
Date: Mon, 17 Feb 2025 18:51:13 +0000
Subject: [PATCH] Ensure argument for isprint and isxdigit is in the correct
 range #1565

---
 src/MQTTPacket.c  | 4 ++--
 src/MQTTVersion.c | 4 ++--
 src/Proxy.c       | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/MQTTPacket.c b/src/MQTTPacket.c
index 40cb4d415..a67c92041 100644
--- a/src/MQTTPacket.c
+++ b/src/MQTTPacket.c
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2009, 2024 IBM Corp. and Ian Craggs
+ * Copyright (c) 2009, 2025 IBM Corp. and Ian Craggs
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v2.0
@@ -860,7 +860,7 @@ int MQTTPacket_formatPayload(int buflen, char* buf, int payloadlen, char* payloa
 
 	for (i = 0; i < payloadlen; i++)
 	{
-		if (isprint(payload[i]))
+		if (isprint((unsigned char)payload[i]))
 		{
 			if (pos >= buflen)
 				break;
diff --git a/src/MQTTVersion.c b/src/MQTTVersion.c
index 92cd020c1..bba9708de 100644
--- a/src/MQTTVersion.c
+++ b/src/MQTTVersion.c
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2012, 2020 IBM Corp.
+ * Copyright (c) 2012, 2025 IBM Corp.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v2.0
@@ -96,7 +96,7 @@ char* FindString(char* filename, const char* eyecatcher_input)
 					char* ptr = value;
 					c = fgetc(infile); /* skip space */
 					c = fgetc(infile);
-					while (isprint(c))
+					while (isprint((unsigned char)c))
 					{
 						*ptr++ = c;
 						c = fgetc(infile);
diff --git a/src/Proxy.c b/src/Proxy.c
index bb9ad6826..60769f59b 100644
--- a/src/Proxy.c
+++ b/src/Proxy.c
@@ -272,7 +272,7 @@ void Proxy_specialChars(char* p0, char* p1, b64_size_t *basic_auth_in_len)
 		{
 			*p0++ = *p1++;
 		}
-		else if (isxdigit(*(p1 + 1)) && isxdigit(*(p1 + 2)))
+		else if (isxdigit((unsigned char)*(p1 + 1)) && isxdigit((unsigned char)*(p1 + 2)))
 		{
 			/* next 2 characters are hexa digits */
 			char hex[3];
@@ -350,4 +350,4 @@ int Proxy_setHTTPProxy(Clients* aClient, char* source, char** dest, char** auth_
 	}
 exit:
 	return rc;
-}
\ No newline at end of file
+}
openSUSE Build Service is sponsored by