On 30.03.2014 20:29, Eric Covener wrote:
> On Sun, Mar 30, 2014 at 2:20 PM,  <rj...@apache.org> wrote:
>> Author: rjung
>> Date: Sun Mar 30 18:20:09 2014
>> New Revision: 1583175
>>
>> URL: http://svn.apache.org/r1583175
>> Log:
>> Fix segfault in mod_alias introduced in r1132494.
>>
>> AliasMatch does not append unmatched parts of the
>> original URI to the  new URI. So no need to subtract
>> anything from the new URI length.
>>
>> The existing code crashed when using
>> "AliasMatch / /some/thing" and sending a request
>> with a long URI.
>>
>> Modified:
>>     httpd/httpd/trunk/modules/mappers/mod_alias.c
>>
>> Modified: httpd/httpd/trunk/modules/mappers/mod_alias.c
>> URL: 
>> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mappers/mod_alias.c?rev=1583175&r1=1583174&r2=1583175&view=diff
>> ==============================================================================
>> --- httpd/httpd/trunk/modules/mappers/mod_alias.c (original)
>> +++ httpd/httpd/trunk/modules/mappers/mod_alias.c Sun Mar 30 18:20:09 2014
>> @@ -371,15 +371,11 @@ static char *try_alias_list(request_rec
>>                              }
>>                         }
>>                         else {
>> -                           int pathlen = strlen(found) -
>> -                                         (strlen(r->uri + regm[0].rm_eo));
>> -                           AP_DEBUG_ASSERT(pathlen >= 0);
>> -                           AP_DEBUG_ASSERT(pathlen <= strlen(found));
>>                             ap_set_context_info(r,
>>                                                 apr_pstrmemdup(r->pool, 
>> r->uri,
>>                                                                
>> regm[0].rm_eo),
>>                                                 apr_pstrmemdup(r->pool, 
>> found,
>> -                                                              pathlen));
>> +                                                              
>> strlen(found)));
>>                         }
>>                      }
>>                      else {
>>
>>
> 
> AFAICT {
> In as much that it was ever useful, this breaks people relying on the
> "context info" for aliasmatches structured the way this code was
> originally biased to expecting:
> 
>   AliasMatch ^(/foo/bar/)(.*) /var/www/baz/$1
> 
> IMO might be best to just never set context info here, or not set it
> when the first capture is not starting at offset 0.
> }

What would have been the expected prefix value in this case?

What in the AliasMatch / /some/thing case?

Regards,

Rainer

Reply via email to