The patch proposed here fixes this:
http://mail-archives.apache.org/mod_mbox/httpd-dev/201401.mbox/%3CCAKQ1sVOZ4M9626H-1eAuOPwgQYURntd7k2Oks%2B5HTchg9Y%2BEow%40mail.gmail.com%3E

Regards,
Yann.


On Fri, Jan 24, 2014 at 8:50 AM, Ruediger Pluem <[email protected]> wrote:

>
>
> [email protected] wrote:
> > Author: jim
> > Date: Thu Jan 23 14:09:40 2014
> > New Revision: 1560689
> >
> > URL: http://svn.apache.org/r1560689
> > Log:
> > Tuck away UDS path in request-rec, since worker isn't
> > thread-safe. Protect from NULL refs.
> >
> > Modified:
> >     httpd/httpd/trunk/modules/proxy/proxy_util.c
> >
> > Modified: httpd/httpd/trunk/modules/proxy/proxy_util.c
> > URL:
> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/proxy_util.c?rev=1560689&r1=1560688&r2=1560689&view=diff
> >
> ==============================================================================
> > --- httpd/httpd/trunk/modules/proxy/proxy_util.c (original)
> > +++ httpd/httpd/trunk/modules/proxy/proxy_util.c Thu Jan 23 14:09:40 2014
>
> > @@ -2275,7 +2271,17 @@ ap_proxy_determine_connection(apr_pool_t
> >                                          conn->pool);
> >          }
> >      }
> > -    if (!(*worker->s->uds_path) && worker->s->is_address_reusable &&
> !worker->s->disablereuse) {
> > +    else {
> > +        /*
> > +         * In UDS cases, some structs are NULL. Protect from de-refs
> > +         * and provide info for logging at the same time.
> > +         */
> > +        apr_sockaddr_t *sa;
> > +        apr_sockaddr_info_get(&sa, NULL, APR_UNSPEC, 0, 0, conn->pool);
> > +        conn->hostname = "httpd-UDS";
> > +        conn->addr = sa;
> > +    }
>
> You cannot be sure in this else branch that you are in the UDS case. It
> could that there is an existing hostname or that
> the address is reusable. You should do the stuff above at the end of the
> if block starting in 2204 (if (uds_path) {
> )
>
> > +    if (!(uds_path) && worker->s->is_address_reusable &&
> !worker->s->disablereuse) {
> >          /*
> >           * Looking up the backend address for the worker only makes
> sense if
> >           * we can reuse the address.
> >
>
> Regards
>
> RĂ¼diger
>

Reply via email to