On Mon, Jun 8, 2020 at 10:05 PM Yann Ylavic <ylavic....@gmail.com> wrote: > > On Mon, Jun 8, 2020 at 9:30 PM Ruediger Pluem <rpl...@apache.org> wrote: > > > > I think we could, but I am not sure if we have ap_parse_uri callers in > > other parts of the code that do not pass absolute URI's > > This patch works with absolute URIs too since apr_parse_uri will split > it in r->parsed_uri and we consider r->parsed_uri.path only.
But to be complete on that side, and handle the proxy case of the asterisk-form (section 5.3.4 [1]), I think we also need this hunk: Index: server/protocol.c =================================================================== --- server/protocol.c (revision 1878328) +++ server/protocol.c (working copy) @@ -640,8 +648,15 @@ AP_CORE_DECLARE(void) ap_parse_uri(request_rec *r, } r->args = r->parsed_uri.query; - r->uri = r->parsed_uri.path ? r->parsed_uri.path - : apr_pstrdup(r->pool, "/"); + if (r->parsed_uri.path) { + r->uri = r->parsed_uri.path; + } + else if (r->method_number == M_OPTIONS) { + r->uri = apr_pstrdup(r->pool, "*"); + } + else { + r->uri = apr_pstrdup(r->pool, "/"); + } #if defined(OS2) || defined(WIN32) /* Handle path translations for OS/2 and plug security hole. -- [1] https://tools.ietf.org/html/rfc7230#section-5.3.4