
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 ley.foon.tan@intel.com --- net/tftp.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/net/tftp.c b/net/tftp.c index c05b7b5532b9..9ca7db256112 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -478,6 +478,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)