Did this become unnecessary when SetHandler/AddHandler support was added for proxy:unix:/ ... configuration?
On Fri, Apr 18, 2014 at 12:52 PM, Yann Ylavic <ylavic....@gmail.com> wrote: > On Fri, Apr 18, 2014 at 5:57 PM, Yann Ylavic <ylavic....@gmail.com> wrote: >> Patch inline. >> >> Index: modules/proxy/proxy_util.c >> =================================================================== >> --- modules/proxy/proxy_util.c (revision 1588466) >> +++ modules/proxy/proxy_util.c (working copy) >> @@ -1508,32 +1508,111 @@ PROXY_DECLARE(char *) ap_proxy_worker_name(apr_poo > [...] >> +PROXY_DECLARE(proxy_worker *) ap_proxy_get_worker_ex(apr_pool_t *p, >> + proxy_balancer >> *balancer, >> + proxy_server_conf >> *conf, >> + const char *url, int >> uds, >> + char **to, char **by) >> +{ > [...] >> + if (!uds) { >> + /* No real interest in *to or *by being used without uds, >> + * don't leave dangling pointers anyway. >> + */ >> + if (to) { >> + *to = NULL; >> + } >> + if (by) { >> + *by = NULL; >> + } >> + url_length = 0; >> + url_copy = NULL; >> + } >> + else { >> + url_length = strlen(url); > > Not the right place to initialize url_length, will be fixed in next > patch (if useful). > >> + url_copy = apr_pstrmemdup(p, url, url_length); >> + url_copy = ap_proxy_split_url(p, url_copy, by); >> + if (to) { >> + *to = url_copy; >> + } >> + url = url_copy; >> + } >> + >> c = ap_strchr_c(url, ':'); >> if (c == NULL || c[1] != '/' || c[2] != '/' || c[3] == '\0') { >> return NULL; >> } >> >> - url_length = strlen(url); >> - url_copy = apr_pstrmemdup(p, url, url_length); >> + if (!url_copy) { >> + url_length = strlen(url); >> + url_copy = apr_pstrmemdup(p, url, url_length); >> + } >> > > Please read something the following instead : > > + if (!uds) { > + /* No real interest in *to or *by being used without uds, > + * don't leave dangling pointers anyway. > + */ > + if (to) { > + *to = NULL; > + } > + if (by) { > + *by = NULL; > + } > + url_copy = NULL; > + } > + else { > + url_copy = ap_proxy_split_url(p, apr_pstrdup(p, url), by); > + if (to) { > + *to = url_copy; > + } > + url = url_copy; > + } > + > c = ap_strchr_c(url, ':'); > if (c == NULL || c[1] != '/' || c[2] != '/' || c[3] == '\0') { > return NULL; > } > > url_length = strlen(url); > - url_copy = apr_pstrmemdup(p, url, url_length); > + if (url_copy == NULL) { > + url_copy = apr_pstrmemdup(p, url, url_length); > + } -- Eric Covener cove...@gmail.com