Subject: Re: [PATCH] Do not unquote + into ' ' in URLs

From: Thomas Rast <[email-masked]>
Date: Sat, 24 Jul 2010 01:04:24 +0200

Junio C Hamano wrote:
> Thomas Rast <[email-masked]> writes:
> 
> > Since 9d2e942 (decode file:// and ssh:// URLs, 2010-05-23) the URL
> > logic unquotes escaped URLs.  For the %2B type of escape, this is
> > conformant with RFC 2396.  However, it also unquotes + into a space
> > character, which is only appropriate for the query strings in HTTP.
> > This notably broke fetching from the gtk+ repository.
> 
> Wait a minute.
> 
> > Based on the discussion, I would consider this a bugfix that should go
> > in 1.7.2.1.
> 
> Some form of this may need to be applied to help the client side, but what
> will happen to
> 
>   http-backend.c::get_info_refs()
>    -> http-backend.c::get_parameter()
>      -> http-backend.c::get_parameters()
>        -> url.c::url_decode_parameter_value()
>          -> url.c::url_decode_internal()
> 
> codepath, which is the server-side handing of query strings?

You're right, I forgot about those.  I imagine it would be one of two
cases:

* It should never have dequoted + before the ? query-delimiter, so we
  need to fix that too;

* It should never have dequoted + before the ? query-delimiter, but
  it's too late to change that now.

Shawn, can you help with this?

-- 
Thomas Rast
trast@{inf,student}.ethz.ch