
in tftpboot, if ack was already sent previously for this packet, don't send again.
Fixes: cc6b87ecaa96 ("net: tftp: Add client support for RFC 7440")
Reported-by: Suneel Garapati suneelglinux@gmail.com Signed-off-by: Ramon Fried rfried.dev@gmail.com --- v2: Fix it so it actually works :)
net/tftp.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/net/tftp.c b/net/tftp.c index 03079ded34..6b781ccf67 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -668,6 +668,12 @@ static void tftp_handler(uchar *pkt, unsigned dest, struct in_addr sip, break; }
+ if (len < tftp_block_size) { + tftp_send(); + tftp_complete(); + break; + } + /* * Acknowledge the block just received, which will prompt * the remote for the next one. @@ -676,11 +682,6 @@ static void tftp_handler(uchar *pkt, unsigned dest, struct in_addr sip, tftp_send(); tftp_next_ack += tftp_windowsize; } - - if (len < tftp_block_size) { - tftp_send(); - tftp_complete(); - } break;
case TFTP_ERROR: