summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorRamon Fried <rfried.dev@gmail.com>2021-02-03 22:28:59 +0300
committerTom Rini <trini@konsulko.com>2021-02-18 16:20:34 +0300
commit2dddc1bb296308b48f89f31e711965fa2c8091a0 (patch)
treecdbfee4bfbcbae522bd4cccff515ec7197e9a88e /net
parent56f1bcc4b7fbca8789cef90c30f201f5b3fff757 (diff)
downloadu-boot-2dddc1bb296308b48f89f31e711965fa2c8091a0.tar.xz
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> Tested-by: Suneel Garapati <suneelglinux@gmail.com> Tested-by: Oliver Graute <oliver.graute@kococonnector.com>
Diffstat (limited to 'net')
-rw-r--r--net/tftp.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/net/tftp.c b/net/tftp.c
index d8cb12120b..00ab7ca0b3 100644
--- a/net/tftp.c
+++ b/net/tftp.c
@@ -669,6 +669,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.
@@ -677,11 +683,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: