diff mbox series

[FFmpeg-devel,v2] avformat/http: copy only mime type from Content-Type

Message ID 20230601194347.1162-1-kasper93@gmail.com
State Accepted
Commit 0cd2e7dcfbc835f4519f1b2b7da6bd902dbb0190
Headers show
Series [FFmpeg-devel,v2] avformat/http: copy only mime type from Content-Type | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Kacper Michajłow June 1, 2023, 7:43 p.m. UTC
Content-Type can include charset and boundary which is not a part of
mime type and shouldn't be copied as such.

Fixes HLS playback when the Content-Type includes additional fields.

Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
---
 libavformat/http.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Kacper Michajłow June 16, 2023, 5:46 p.m. UTC | #1
On Thu, 1 Jun 2023 at 21:44, Kacper Michajłow <kasper93@gmail.com> wrote:
>
> Content-Type can include charset and boundary which is not a part of
> mime type and shouldn't be copied as such.
>
> Fixes HLS playback when the Content-Type includes additional fields.
>
> Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
> ---
>  libavformat/http.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavformat/http.c b/libavformat/http.c
> index 0817aafb5b..fd931c2d8e 100644
> --- a/libavformat/http.c
> +++ b/libavformat/http.c
> @@ -1205,7 +1205,7 @@ static int process_line(URLContext *h, char *line, int line_count)
>              }
>          } else if (!av_strcasecmp(tag, "Content-Type")) {
>              av_free(s->mime_type);
> -            s->mime_type = av_strdup(p);
> +            s->mime_type = av_get_token((const char **)&p, ";");
>          } else if (!av_strcasecmp(tag, "Set-Cookie")) {
>              if (parse_cookie(s, p, &s->cookie_dict))
>                  av_log(h, AV_LOG_WARNING, "Unable to parse '%s'\n", p);
> --
> 2.34.1
>

Bump. I would prefer this smal thing to be fixed upstream, than adding
workaround.

Thanks.
Leo Izen June 29, 2023, 12:12 a.m. UTC | #2
On 6/16/23 13:46, Kacper Michajlow wrote:
> On Thu, 1 Jun 2023 at 21:44, Kacper Michajłow <kasper93@gmail.com> wrote:
>>
>> Content-Type can include charset and boundary which is not a part of
>> mime type and shouldn't be copied as such.
>>
>> Fixes HLS playback when the Content-Type includes additional fields.
>>
>> Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
>> ---
>>   libavformat/http.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavformat/http.c b/libavformat/http.c
>> index 0817aafb5b..fd931c2d8e 100644
>> --- a/libavformat/http.c
>> +++ b/libavformat/http.c
>> @@ -1205,7 +1205,7 @@ static int process_line(URLContext *h, char *line, int line_count)
>>               }
>>           } else if (!av_strcasecmp(tag, "Content-Type")) {
>>               av_free(s->mime_type);
>> -            s->mime_type = av_strdup(p);
>> +            s->mime_type = av_get_token((const char **)&p, ";");
>>           } else if (!av_strcasecmp(tag, "Set-Cookie")) {
>>               if (parse_cookie(s, p, &s->cookie_dict))
>>                   av_log(h, AV_LOG_WARNING, "Unable to parse '%s'\n", p);
>> --
>> 2.34.1
>>
> 
> Bump. I would prefer this smal thing to be fixed upstream, than adding
> workaround.
> 
> Thanks.

LGTM, will push tomorrow if no objections.

- Leo Izen
Leo Izen June 29, 2023, 9:41 p.m. UTC | #3
On 6/28/23 20:12, Leo Izen wrote:
> On 6/16/23 13:46, Kacper Michajlow wrote:
>> On Thu, 1 Jun 2023 at 21:44, Kacper Michajłow <kasper93@gmail.com> wrote:
>>>
>>> Content-Type can include charset and boundary which is not a part of
>>> mime type and shouldn't be copied as such.
>>>
>>> Fixes HLS playback when the Content-Type includes additional fields.
>>>
>>> Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
>>> ---
>>>   libavformat/http.c | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/libavformat/http.c b/libavformat/http.c
>>> index 0817aafb5b..fd931c2d8e 100644
>>> --- a/libavformat/http.c
>>> +++ b/libavformat/http.c
>>> @@ -1205,7 +1205,7 @@ static int process_line(URLContext *h, char 
>>> *line, int line_count)
>>>               }
>>>           } else if (!av_strcasecmp(tag, "Content-Type")) {
>>>               av_free(s->mime_type);
>>> -            s->mime_type = av_strdup(p);
>>> +            s->mime_type = av_get_token((const char **)&p, ";");
>>>           } else if (!av_strcasecmp(tag, "Set-Cookie")) {
>>>               if (parse_cookie(s, p, &s->cookie_dict))
>>>                   av_log(h, AV_LOG_WARNING, "Unable to parse '%s'\n", 
>>> p);
>>> -- 
>>> 2.34.1
>>>
>>
>> Bump. I would prefer this smal thing to be fixed upstream, than adding
>> workaround.
>>
>> Thanks.
> 
> LGTM, will push tomorrow if no objections.
> 
> - Leo Izen
> 

Pushed as 0cd2e7dcfbc8.

- Leo Izen
diff mbox series

Patch

diff --git a/libavformat/http.c b/libavformat/http.c
index 0817aafb5b..fd931c2d8e 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -1205,7 +1205,7 @@  static int process_line(URLContext *h, char *line, int line_count)
             }
         } else if (!av_strcasecmp(tag, "Content-Type")) {
             av_free(s->mime_type);
-            s->mime_type = av_strdup(p);
+            s->mime_type = av_get_token((const char **)&p, ";");
         } else if (!av_strcasecmp(tag, "Set-Cookie")) {
             if (parse_cookie(s, p, &s->cookie_dict))
                 av_log(h, AV_LOG_WARNING, "Unable to parse '%s'\n", p);