From: Ley Foon Tan Date: Tue, 25 Aug 2020 02:26:35 +0000 (+0800) Subject: net: tftp: Fix tftp_prev_block counter update X-Git-Url: http://git.dujemihanovic.xyz/html/%7B%7B%20.Permalink%20%7D%7D?a=commitdiff_plain;h=6bf46367f5f1fd159f8a497d094ecfcbb6bc3c1d;p=u-boot.git net: tftp: Fix tftp_prev_block counter update Fixes missing update to tftp_prev_block counter before increase tftp_cur_block counter when do the tftpput operation. tftp_prev_block counter is used in update_block_number() function to check whether block number (sequence number) is rollover. This bug cause the tftpput command fail to upload a large file when block number is greater than 16-bit (0xFFFF). Signed-off-by: Ley Foon Tan Reviewed-By: Ramon Fried --- diff --git a/net/tftp.c b/net/tftp.c index 84e970bec1..380094d493 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -502,6 +502,7 @@ static void tftp_handler(uchar *pkt, unsigned dest, struct in_addr sip, int block = ntohs(*s); int ack_ok = (tftp_cur_block == block); + tftp_prev_block = tftp_cur_block; tftp_cur_block = (unsigned short)(block + 1); update_block_number(); if (ack_ok)