On Sun, Mar 30, 2014 at 2:20 PM, <[email protected]> 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.
}
--
Eric Covener
[email protected]