[PATCH] nwt: wget: drop Content-Length processing

Jerome Forissier jerome.forissier at linaro.org
Wed Nov 13 15:27:21 CET 2024



On 11/11/24 13:47, Ilias Apalodimas wrote:
> Hi Jerome,
> 
> On Tue, 5 Nov 2024 at 13:09, Jerome Forissier
> <jerome.forissier at linaro.org> wrote:
>>
>> We don't do anything with Content-Length except a debug print, and the
>> strict_strtoul() call is incorrect (it always returns -EINVAL and leaves
>> content_length to zero due to the presence of trailing characters after
>> the decimal valuoe of Content-Length). So let's just drop this piece of
>> code.
>>
>> Signed-off-by: Jerome Forissier <jerome.forissier at linaro.org>
>> ---
>>  net/wget.c | 13 -------------
>>  1 file changed, 13 deletions(-)
>>
>> diff --git a/net/wget.c b/net/wget.c
>> index 635f82efbb3..361817ace65 100644
>> --- a/net/wget.c
>> +++ b/net/wget.c
>> @@ -26,7 +26,6 @@ static const char bootfile1[] = "GET ";
>>  static const char bootfile3[] = " HTTP/1.0\r\n\r\n";
>>  static const char http_eom[] = "\r\n\r\n";
>>  static const char http_ok[] = "200";
>> -static const char content_len[] = "Content-Length";
>>  static const char linefeed[] = "\r\n";
>>  static struct in_addr web_server_ip;
>>  static int our_port;
>> @@ -46,7 +45,6 @@ struct pkt_qd {
>>  #define PKTQ_SZ (PKTBUFSRX / 4)
>>  static struct pkt_qd pkt_q[PKTQ_SZ];
>>  static int pkt_q_idx;
>> -static unsigned long content_length;
>>  static unsigned int packets;
>>
>>  static unsigned int initial_data_seq_num;
>> @@ -251,17 +249,6 @@ static void wget_connected(uchar *pkt, unsigned int tcp_seq_num,
>>                                    "wget: Connected Pkt %p hlen %x\n",
>>                                    pkt, hlen);
>>
>> -                       pos = strstr((char *)pkt, content_len);
>> -                       if (!pos) {
>> -                               content_length = -1;
>> -                       } else {
>> -                               pos += sizeof(content_len) + 2;
>> -                               strict_strtoul(pos, 10, &content_length);
>> -                               debug_cond(DEBUG_WGET,
>> -                                          "wget: Connected Len %lu\n",
>> -                                          content_length);
> 
> How much work would it be to fix the parsing properly? We could look
> into that value and drop it if the memory is > our available memory

TBH I have not looked into it. This is the legacy stack; lwIP does
decode and handle the content length properly AFAICT.

Regards,
-- 
 Jerome

> 
> Thanks
> /Ilias
>> -                       }
>> -
>>                         net_boot_file_size = 0;
>>
>>                         if (len > hlen) {
>> --
>> 2.40.1
>>


More information about the U-Boot mailing list