[PATCH v11 14/29] lwip: tftp: bind to TFTP port only when in server mode
Jerome Forissier
jerome.forissier at linaro.org
Fri Oct 4 11:07:28 CEST 2024
On 10/4/24 08:11, Ilias Apalodimas wrote:
> Hi Jerome,
>
> On Thu, 3 Oct 2024 at 18:47, Jerome Forissier
> <jerome.forissier at linaro.org> wrote:
>>
>> The TFTP app should not bind to the TFTP server port when configured as
>> a client. Instead, the local port should be chosen from the dynamic
>> range (49152 ~ 65535) so that if the application is stopped and started
>> again, the remote server will not consider the new packets as part of
>> the same context (which would cause an error since a new RRQ would be
>> unexpected).
>>
>> Signed-off-by: Jerome Forissier <jerome.forissier at linaro.org>
>> ---
>> lib/lwip/lwip/src/apps/tftp/tftp.c | 10 ++++++----
>> 1 file changed, 6 insertions(+), 4 deletions(-)
>>
>> diff --git a/lib/lwip/lwip/src/apps/tftp/tftp.c b/lib/lwip/lwip/src/apps/tftp/tftp.c
>> index ddfdbfc0c1b..74fc1fbe586 100644
>> --- a/lib/lwip/lwip/src/apps/tftp/tftp.c
>> +++ b/lib/lwip/lwip/src/apps/tftp/tftp.c
>> @@ -454,10 +454,12 @@ tftp_init_common(u8_t mode, const struct tftp_context *ctx)
>> return ERR_MEM;
>> }
>>
>> - ret = udp_bind(pcb, IP_ANY_TYPE, TFTP_PORT);
>> - if (ret != ERR_OK) {
>> - udp_remove(pcb);
>> - return ret;
>> + if (mode == LWIP_TFTP_MODE_SERVER) {
>> + ret = udp_bind(pcb, IP_ANY_TYPE, TFTP_PORT);
>> + if (ret != ERR_OK) {
>> + udp_remove(pcb);
>> + return ret;
>> + }
>
> This should be sent to lwip as well right?
Yes: https://savannah.nongnu.org/patch/?10480
Link added to the patch description.
>
>> }
>>
>> tftp_state.handle = NULL;
>> --
>> 2.40.1
>>
>
> Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
Thanks,
--
Jerome
More information about the U-Boot
mailing list