On Jan 29, 2010, at 10:46 AM, Stefan Fritsch wrote:

> On Friday 29 January 2010, Plüm, Rüdiger, VF-Group wrote:
>> Thanks for clarification. I guess I understand your intension
>> better now. So basicly you want those providers that do not
>> implement GET by themselves to enforce the usage of the default
>> handler, correct?
>> Mind to sent a patch to the list for better review?
> 
> Exactly. The patch below works with 2.2 (haven't tested with trunk
> due to lack of mod_php).
> 
> BTW, I found PR 13025, which seems to suggest that being able to mix
> script execution and DAV on the same URL is a feature. I am still for
> removing this 'feature' in trunk, though. But I would be against a
> backport to 2.2.x.
> 
> 
> --- a/modules/dav/main/mod_dav.c
> +++ b/modules/dav/main/mod_dav.c
> @@ -4803,12 +4803,13 @@ static int dav_fixups(request_rec *r)
> 
>         /*
>          * If the repository hasn't indicated that it will handle the
> -         * GET method, then just punt.
> -         *
> -         * ### this isn't quite right... taking over the response can break
> -         * ### things like mod_negotiation. need to look into this some more.
> +         * GET method, then we let the default handler do it. Set the handler
> +         * explicitly to ensure that no other handler takes the request.
> +         * We don't care about directories, though.
>          */
>         if (!conf->provider->repos->handle_get) {
> +            if (r->finfo.filetype != APR_DIR)
> +                r->handler = "none";
>             return DECLINED;
>         }
>     }

It looks to me like that would introduce a security hole for existing
configs that expect a handler to run on GET (PHP/CGI scripts that are
authorable via DAV).  -1 if so.

....Roy

Reply via email to