Ruediger Pluem wrote: > > > > On 08/31/2007 12:14 PM, wrote: > > Author: niq > > Date: Fri Aug 31 03:13:59 2007 > > New Revision: 571414 > > > > URL: http://svn.apache.org/viewvc?rev=571414&view=rev > > Log: > > Fix potential proxy segfault > > PR 40756. Patch adapted from 2.0 patch by Trevin Beattie > > > > Modified: > > httpd/httpd/trunk/CHANGES > > httpd/httpd/trunk/modules/proxy/mod_proxy_connect.c > > > > Modified: httpd/httpd/trunk/CHANGES > > > Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_connect.c > > URL: > > http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_connect.c?rev=571414&r1=571413&r2=571414&view=diff > > ============================================================================== > > --- httpd/httpd/trunk/modules/proxy/mod_proxy_connect.c (original) > > +++ httpd/httpd/trunk/modules/proxy/mod_proxy_connect.c Fri Aug 31 03:13:59 > > 2007 > > @@ -125,18 +125,24 @@ > > > > /* are we connecting directly, or via a proxy? */ > > if (proxyname) { > > - connectname = proxyname; > > - connectport = proxyport; > > + connectname = proxyname; > > + connectport = proxyport; > > err = apr_sockaddr_info_get(&connect_addr, proxyname, APR_UNSPEC, > > proxyport, 0, p); > > } > > else { > > - connectname = uri.hostname; > > - connectport = uri.port; > > - connect_addr = uri_addr; > > + connectname = uri.hostname; > > + connectport = uri.port; > > + connect_addr = uri_addr; > > } > > ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, > > "proxy: CONNECT: connecting to remote proxy %s on port %d", > > connectname, connectport); > > > > + if (APR_SUCCESS != err) { > > + return ap_proxyerror(r, HTTP_BAD_GATEWAY, apr_pstrcat(p, > > + "DNS lookup failure for: ", > > + uri.hostname, NULL)); > > + } > > + > > /* check if ProxyBlock directive on this host */ > > if (OK != ap_proxy_checkproxyblock(r, conf, uri_addr)) { > > Hm. In the case that apr_sockaddr_info_get fails for uri.hostname, but > succeeds for > proxyname (if we have one) we still crash in ap_proxy_checkproxyblock, don't > we? > Because in this case err will be reset to APR_SUCCESS by the second > apr_sockaddr_info_get > call. >
I need to look (stepping out in a few mins) but I think you are right. Plus, nit-picking time, there are other lines in this file that could use reformating :) -- =========================================================================== Jim Jagielski [|] [EMAIL PROTECTED] [|] http://www.jaguNET.com/ "If you can dodge a wrench, you can dodge a ball."
