[PATCH] net: tftp: Fix incorrect tftp_next_ack on no OACK

Ramon Fried rfried.dev at gmail.com
Mon Dec 14 22:36:26 CET 2020


On Fri, Nov 27, 2020 at 11:45 PM Harm Berntsen <harm.berntsen at nedap.com> wrote:
>
> When the tftp server did not send any OACK, the tftp_next_ack variable
> was not set to the correct value . As the server was transmitting
> blocks we generated a lot of 'Received unexpected block: $n, expected
> $n+1' error messages. Depending on the timeout setting the transfer
> could still complete though.
>
> Signed-off-by: Harm Berntsen <harm.berntsen at nedap.com>
> CC: Ramon Fried <rfried.dev at gmail.com>
> ---
>
>  net/tftp.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/net/tftp.c b/net/tftp.c
> index 6fdb1a821a..9371d7ef2c 100644
> --- a/net/tftp.c
> +++ b/net/tftp.c
> @@ -624,8 +624,10 @@ static void tftp_handler(uchar *pkt, unsigned dest, struct in_addr sip,
>                 tftp_cur_block++;
>                 tftp_cur_block %= TFTP_SEQUENCE_SIZE;
>
> -               if (tftp_state == STATE_SEND_RRQ)
> +               if (tftp_state == STATE_SEND_RRQ) {
>                         debug("Server did not acknowledge any options!\n");
> +                       tftp_next_ack = tftp_windowsize;
> +               }
>
>                 if (tftp_state == STATE_SEND_RRQ || tftp_state == STATE_OACK ||
>                     tftp_state == STATE_RECV_WRQ) {
> --
> 2.29.2
>
>
Reviewed-By: Ramon Fried <rfried.dev at gmail.com>


More information about the U-Boot mailing list