summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuya Hamamachi <[email protected]>2026-01-29 23:30:19 +0100
committerJerome Forissier <[email protected]>2026-02-06 16:37:31 +0100
commita28db0f1ccd6d7f88e9715486376bc039975f72c (patch)
tree67f66d0a7a12551db45d8c2572da010a1d7e49d4
parent86f90e2a5fb0283552f610e293fcee2a29724094 (diff)
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 <[email protected]> Signed-off-by: Marek Vasut <[email protected]>
-rw-r--r--net/tftp.c4
1 files changed, 2 insertions, 2 deletions
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