[PATCH uclient 08/12] uclient-http: fix extra compiler warnings on mips_24kc and cortex-a9+neon

Petr Štetiar ynezz at true.cz
Thu Dec 10 10:47:55 EST 2020


Fixes following warnings as reported on 32-bit platforms
toolchain-mips_24kc_gcc-8.4.0_musl and toolchain-arm_cortex-a9+neon_gcc-8.4.0_musl_eabi:

 uclient-http.c:1111:10: error: comparison of integer expressions of different signedness: 'unsigned int' and 'int' [-Werror=sign-compare]
   if (len > data_end - data)
           ^
 uclient-http.c:1115:11: error: comparison of integer expressions of different signedness: 'unsigned int' and 'long int' [-Werror=sign-compare]
    if (len > uh->read_chunked)
            ^
 uclient-http.c:1120:11: error: comparison of integer expressions of different signedness: 'unsigned int' and 'long int' [-Werror=sign-compare]
    if (len > uh->content_length)
            ^

References: https://gitlab.com/ynezz/openwrt-uclient/-/pipelines/226912126
Signed-off-by: Petr Štetiar <ynezz at true.cz>
---
 uclient-http.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/uclient-http.c b/uclient-http.c
index 7eb469221d7f..349e69cdd4ae 100644
--- a/uclient-http.c
+++ b/uclient-http.c
@@ -1108,16 +1108,17 @@ uclient_http_read(struct uclient *cl, char *buf, unsigned int len)
 		}
 	}
 
-	if (len > data_end - data)
-		len = data_end - data;
+	unsigned int diff = data_end - data;
+	if (len > diff)
+		len = diff;
 
 	if (uh->read_chunked >= 0) {
-		if (len > uh->read_chunked)
+		if (len > (unsigned long) uh->read_chunked)
 			len = uh->read_chunked;
 
 		uh->read_chunked -= len;
 	} else if (uh->content_length >= 0) {
-		if (len > uh->content_length)
+		if (len > (unsigned long) uh->content_length)
 			len = uh->content_length;
 
 		uh->content_length -= len;



More information about the openwrt-devel mailing list