[PATCH v2] net: tftp: Avoid sending extra ack on completion

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:

On Wed, Feb 3, 2021 at 11:26 AM Ramon Fried rfried.dev@gmail.com wrote:
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:
-- 2.17.1
Tested-by: Suneel Garapati suneelglinux@gmail.com

On 03/02/21, Ramon Fried wrote:
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
Tested-by: Oliver Graute oliver.graute@kococonnector.com

On Wed, Feb 17, 2021 at 12:29 PM Oliver Graute oliver.graute@gmail.com wrote:
On 03/02/21, Ramon Fried wrote:
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
Tested-by: Oliver Graute oliver.graute@kococonnector.com
Tom, can you please merge this ? This is an important bug fix that should be merged asap.
Thanks, Ramon.

On Wed, Feb 03, 2021 at 09:28:59PM +0200, Ramon Fried wrote:
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 Tested-by: Suneel Garapati suneelglinux@gmail.com Tested-by: Oliver Graute oliver.graute@kococonnector.com
Applied to u-boot/master, thanks!
participants (4)
-
Oliver Graute
-
Ramon Fried
-
Suneel Garapati
-
Tom Rini