[vlc-devel] [PATCH 1/2] http2: fix up URLs

Thomas Guillem thomas at gllm.fr
Fri Oct 9 09:41:28 CEST 2020


I remember a previous discussion where we said it was the responsibility of the access modules to do this fixup.

cf. https://trac.videolan.org/vlc/ticket/18991 and https://git.videolan.org/?p=vlc.git;a=commit;h=762ca1e8a01278b34ddb34765f3339690aad5d2e

I'm not sure that URLs are fixed up at this point.

How do you propose to fix #3435 <https://trac.videolan.org/vlc/ticket/3435> then? Because you said it was fixed but it is *not*. VLC can't handle unvalid http URLs with a " ". Every other player or browsers can.

On Fri, Oct 9, 2020, at 09:26, Rémi Denis-Courmont wrote:
> URLs are already fixed up when they get to this point. Fixing up URLs twice is a recipe for disaster. We've tried.
> 
> -1
> 
> Le 9 octobre 2020 09:56:58 GMT+03:00, Thomas Guillem <thomas at gllm.fr> a écrit :
>> This will allow VLC to open unvalid URLs (using a space instead of the
>> %20 encoding, for example). Every other browsers or players are doing
>> this fixup.
>> 
>> Fixes #3435 modules/access/http/access.c | 12 ++++++++++--
>>  1 file changed, 10 insertions(+), 2 deletions(-)
>> 
>> diff --git a/modules/access/http/access.c b/modules/access/http/access.c
>> index a3805d0d426..123daaf51d3 100644
>> --- a/modules/access/http/access.c
>> +++ b/modules/access/http/access.c
>> @@ -171,19 +171,27 @@ static int Open(vlc_object_t *obj)
>>      struct vlc_url_t crd_url;
>>      char *psz_realm = NULL;
>>  
>> -    vlc_UrlParse(&crd_url, access->psz_url);
>> +    char *url_fixup = vlc_uri_fixup(access->psz_url);
>> +    if (url_fixup == NULL)
>> +        goto error;
>> +
>> +    vlc_UrlParse(&crd_url, url_fixup);
>>      vlc_credential_init(&crd, &crd_url);
>>  
>>      sys->manager = vlc_http_mgr_create(obj, jar);
>>      if (sys->manager == NULL)
>> +    {
>> +        free(url_fixup);
>>          goto error;
>> +    }
>>  
>>      char *ua = var_InheritString(obj, "http-user-agent");
>>      char *referer = var_InheritString(obj, "http-referrer");
>>      bool live = var_InheritBool(obj, "http-continuous");
>>  
>>      sys->resource = (live ? vlc_http_live_create : vlc_http_file_create)(
>> -        sys->manager, access->psz_url, ua, referer);
>> +        sys->manager, url_fixup, ua, referer);
>> +    free(url_fixup);
>>      free(referer);
>>      free(ua); 
> 
> -- 
> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20201009/e44a05da/attachment.html>


More information about the vlc-devel mailing list