Commit 0c9283f0 authored by Jeff Trawick's avatar Jeff Trawick
Browse files

Fix a segfault when a numeric host (e.g., "Host: 123") was specified.

apr_parse_addr_port() assumes that if there is just a number it must
be a port, but here we need to assume that it is a host.

todo: pass a flag into apr_parse_addr_port()?  unclear whether or
      not that is cleaner overall


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@90734 13f79535-47bb-0310-9956-ffa450edef68
parent fff16a4e
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
Changes with Apache 2.0.25-dev

  *) Fix a segfault when a numeric value was received for Host:.
     [Jeff Trawick]

  *) Add a function ap_remove_input_filter.  This is to match
     up with ap_remove_output_filter.  [Ryan Bloom]

+8 −0
Original line number Diff line number Diff line
@@ -734,6 +734,14 @@ static void fix_hostname(request_rec *r)
        goto bad;
    }

    if (!host && port) {
        /* silly looking host ("Host: 123") but that isn't our job
         * here to judge; apr_parse_addr_port() would think we had a port
         * but no address
         */
        host = apr_psprintf(r->pool, "%d", (int)port);
    }

    /* if the hostname is an IPv6 numeric address string, it was validated 
     * already; otherwise, further validation is needed 
     */