grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] http: parse HTTP headers case-insensitive


From: Glenn Washburn
Subject: Re: [PATCH] http: parse HTTP headers case-insensitive
Date: Fri, 14 Jan 2022 16:35:15 -0600

On Fri, 14 Jan 2022 22:20:17 +0100
Jamo <jamofer@gmail.com> wrote:

> According to https://www.ietf.org/rfc/rfc2616.txt 4.2, header names
> shall be case insensitive and we are now forced to read headers like
> `Content-Length` capitalized.

I'm not sure if Daniel likes these backticks, perhaps normal quotes
would be better. I'll let him chime in if so.

> 
> The problem with that is when a HTTP server responds with a
> `content-length` header in lowercase GRUB gets stuck because HTTP

There should be a ',' right after "lowercase". 

> module doesn't know the length of the transmision and the call never

Just noticed that "transmision" should be spelled "transmission".

> ends.
> ---
>  grub-core/net/http.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/grub-core/net/http.c b/grub-core/net/http.c
> index b616cf40b..d3ba8c799 100644
> --- a/grub-core/net/http.c
> +++ b/grub-core/net/http.c
> @@ -130,7 +130,7 @@ parse_line (grub_file_t file, http_data_t data, char 
> *ptr, grub_size_t len)
>        data->first_line_recv = 1;
>        return GRUB_ERR_NONE;
>      }
> -  if (grub_memcmp (ptr, "Content-Length: ", sizeof ("Content-Length: ") - 1)
> +  if (grub_strncasecmp (ptr, "Content-Length: ", sizeof ("Content-Length: ") 
> - 1)
>        == 0 && !data->size_recv)
>      {
>        ptr += sizeof ("Content-Length: ") - 1;
> @@ -138,8 +138,8 @@ parse_line (grub_file_t file, http_data_t data, char 
> *ptr, grub_size_t len)
>        data->size_recv = 1;
>        return GRUB_ERR_NONE;
>      }
> -  if (grub_memcmp (ptr, "Transfer-Encoding: chunked",
> -                sizeof ("Transfer-Encoding: chunked") - 1) == 0)
> +  if (grub_strncasecmp (ptr, "Transfer-Encoding: chunked",
> +                     sizeof ("Transfer-Encoding: chunked") - 1) == 0)
>      {
>        data->chunked = 1;
>        return GRUB_ERR_NONE;

Aside from the minor stuff in the commit message, the patch looks good
to me.

Reviewed-by: Glenn Washburn <development@efficientek.com>

Glenn



reply via email to

[Prev in Thread] Current Thread [Next in Thread]