]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
net: tftp: Fix TFTP Transfer Size data type
authorYuya Hamamachi <yuya.hamamachi.sx@renesas.com>
Thu, 29 Jan 2026 22:30:19 +0000 (23:30 +0100)
committerJerome Forissier <jerome.forissier@arm.com>
Fri, 6 Feb 2026 15:37:31 +0000 (16:37 +0100)
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 <yuya.hamamachi.sx@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
net/tftp.c

index 78ec44159c1be7ac40bd57f54c62d965932d8c87..5f2e0a2bc064626434521806e2ae3c50e16a6078 100644 (file)
@@ -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