httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From d...@ast.cam.ac.uk (David Robinson)
Subject Re: vote update
Date Thu, 15 Feb 1996 11:31:00 GMT
>On Tue, 13 Feb 1996, David Robinson wrote:
>
>> The other change was to add #include <utime.h>
>
>However, I don't think that's it *grin*. BTW, I did find out something -
>removing the -O2 from Configuration causes it to work (I think this is why
>it had worked last time - it wasn't optimized). But that still means
>something's wrong, so...
>
>> Hmm, this looks as though something is overwriting that stack; clearly
>> 0x46464646 is not likely to be a real address, and url and proxyhost
>> are clearly bad.
>
>Yes.
>
>> I suspect the line it was breaking on is
>>     cache = c->fp;
>> 
>> I Suggest you try single stepping it with gdb from the start of http_handler
>> until the stack gets trashed (watch the value of 'c')
>
>Almost. Here's part of a single-step through http_handler, keeping an eye 
>on the value of url:
>
>(gdb) step
>2581        for (i=0; i < len; i++)
>(gdb) print url
>$9 = 0x40022d60 "/"
>(gdb) step
>2583            if (hdr[i].value[0] == '\0') continue;
>(gdb) print url
>$10 = 0x6800 " and an optional value to pass to CGI."
>
>Obviously, something bad happens in there. But for the life of me I have 
>no clue what. The string happens to be from mod_env.c, but even if you 
>remove that module, it just picks a string from somewhere else (not 
>surprising, actually).

Hmm. Presumably you compiled with optimisation, so the line numbers
aren't particularly reliable.

Are you sure you are using the version which fixed the bug of not
terminating inprotocol?

I guess I would suggest putting some fprintf(stderr, "%p\n", url);
lines in there to narrow it down.

 David.

Mime
View raw message