From: Yuya Hamamachi Date: Thu, 29 Jan 2026 22:30:19 +0000 (+0100) Subject: net: tftp: Fix TFTP Transfer Size data type X-Git-Tag: v2026.04-rc2~3^2~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a28db0f1ccd6d7f88e9715486376bc039975f72c;p=thirdparty%2Fu-boot.git net: tftp: Fix TFTP Transfer Size data type The TFTP transfer size is unsigned integer, update the data type and print formating string accordingly to prevent an overflow in case the file size is longer than 2 GiB. TFTP transfer of a 3 GiB file, before (wrong) and after (right): Loading: ################################################# 16 EiB Loading: ################################################## 3 GiB Signed-off-by: Yuya Hamamachi Signed-off-by: Marek Vasut --- diff --git a/net/tftp.c b/net/tftp.c index 78ec44159c1..5f2e0a2bc06 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -94,7 +94,7 @@ static int tftp_state; static ulong tftp_load_addr; #ifdef CONFIG_TFTP_TSIZE /* The file size reported by the server */ -static int tftp_tsize; +static unsigned int tftp_tsize; /* The number of hashes we printed */ static short tftp_tsize_num_hash; #endif @@ -573,7 +573,7 @@ static void tftp_handler(uchar *pkt, unsigned dest, struct in_addr sip, if (strcasecmp((char *)pkt + i, "tsize") == 0) { tftp_tsize = dectoul((char *)pkt + i + 6, NULL); - debug("size = %s, %d\n", + debug("size = %s, %u\n", (char *)pkt + i + 6, tftp_tsize); } #endif