www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Pelletier <mi...@comshare.com>
Subject Re: Changed information for PR mod_proxy/304
Date Fri, 11 Apr 1997 16:03:18 GMT
On Thu, 10 Apr 1997 chuck@hyperreal.com wrote:

> Synopsis: multiple-homed Web hosts - con refused to first IP doesn't fall through to
second
> 
> State-Changed-From-To: open-closed
> State-Changed-By: chuck
> State-Changed-When: Thu Apr 10 22:49:42 PDT 1997
> State-Changed-Why:
> A patch for this problem is available at
> http://www.apache.org, in the patches for 1.2b8 ddirectory.
> It's called mod_proxy-addr.patch

When I do a make clean and compile with all three patches under BSD/OS 2.1
using the "shlicc" shared library compiler, and then try to run the proxy,
I get a segementation fault core dump right after the "compile time limit"
warning. 

I recompiled with "-g" and the non-shared version of the "gcc" compiler,
and tried again, and the same thing happened, and here's the gdb output:

Program terminated with signal 11, Segmentation fault.
#0  0x36703 in set_cache_exclude (parms=0xefbfda2c, dummy=0x0, 
    arg=0x7652c "comshare.com") at mod_proxy.c:497
497                 memcpy(&new->addr, hp.h_addr, sizeof(struct in_addr));
(gdb) where
#0  0x36703 in set_cache_exclude (parms=0xefbfda2c, dummy=0x0, 
    arg=0x7652c "comshare.com") at mod_proxy.c:497
#1  0xa6ac in invoke_cmd (cmd=0x668ac, parms=0xefbfda2c, mconfig=0x0, 
    args=0xefbfb9c8 "") at http_config.c:580
#2  0xaaa1 in handle_command (parms=0xefbfda2c, config=0x75b94, 
    l=0xefbfb9b4 "NoCache comshare.com") at http_config.c:677
#3  0xab34 in srm_command_loop (parms=0xefbfda2c, config=0x75b94)
    at http_config.c:690
#4  0xad7e in process_resource_config (s=0x75034, 
    fname=0x7628c "/usr/local/etc/httpd/conf/httpd.conf", p=0x7500c, 
    ptemp=0x7800c) at http_config.c:770
#5  0xb7bd in read_config (p=0x7500c, ptemp=0x7800c, 
    confname=0x72404 "conf/httpd.conf") at http_config.c:1081
#6  0x5a17 in main (argc=1, argv=0xefbfdaec) at http_main.c:2267
(gdb)

The error occurs in the portion of mod_proxy.c affected by the
mod_proxy-addr.patch file.

I inserted some debugging code:

        /* Don't do name lookups on things that aren't dotted */
        if (strchr(arg, '.') != NULL) {
printf("calling proxy_host2addr(%s, &hp);\n", new->name);
printf("result = \"%s\"\n", proxy_host2addr(new->name, &hp));
            memcpy(&new->addr, hp.h_addr, sizeof(struct in_addr));
        }

And got:

calling proxy_host2addr(comshare.com, &hp);
result = "Host not found"
Segmentation fault (core dumped)

The problem is that I was under the impression that the "NoCache" config
file directive was a wildcard, and would prevent caching for any host in
the comshare.com domain.  Apparently here it's being treated as a specific
host name.  This worked in 1.2b7, but with the introduction of this
proxy_host2addr()  call it started having a problem with the fact that
comshare.com does not have an A record.

It would appear that there needs to be some sanity checking done on the
return value of the proxy_host2addr() function call here.  I'll let you
take care of that in an Apache-appropriate way, rather than sending a
patch that might not fit in with the rest of the Apache code's error
logging mechanisms.

Thanks again!

	-Mike Pelletier.


Mime
View raw message