httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <wr...@rowe-clan.net>
Subject Re: svn commit: r730949 - /httpd/httpd/trunk/server/listen.c
Date Sat, 03 Jan 2009 18:23:02 GMT
William A. Rowe, Jr. wrote:
> rpluem@apache.org wrote:
>> Author: rpluem
>> Date: Sat Jan  3 01:52:12 2009
>> New Revision: 730949
>>
>> URL: http://svn.apache.org/viewvc?rev=730949&view=rev
>> Log:
>> * Handle the case where conf->accf_map is NULL gracefully instead of segfaulting
>>
>> Modified:
>>     httpd/httpd/trunk/server/listen.c
>>
>> Modified: httpd/httpd/trunk/server/listen.c
>> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/listen.c?rev=730949&r1=730948&r2=730949&view=diff
>> ==============================================================================
>> --- httpd/httpd/trunk/server/listen.c (original)
>> +++ httpd/httpd/trunk/server/listen.c Sat Jan  3 01:52:12 2009
>> @@ -183,7 +183,7 @@
>>      const char* accf;
>>      core_server_config *conf = ap_get_module_config(s->module_config,
>>                                                      &core_module);
>> -    if (!proto) {
>> +    if (!proto || !conf->accf_map) {
> 
> Ok, problem there.  AIUI this should not happen.
> 
> accf_map is created for the global-hosts (!is_virtual).  All virtual hosts
> should have run the merge, which cpy's the global before fixing up specific
> fields in the merge.
> 
> I'd prefer we revert and work backwards to where the bug really is.

I'm still confused, in merge_core_server_configs, we do;

conf = (core_server_config *)apr_pmemdup(p, virt, sizeof(core_server_config));

and otherwise didn't touch the accf_map pointer.  How do you have an orphan
virtual server config which was never merged to the core server config?!?

Are you saying we actually iterate UNMERGED server confs in places?  Now
that is horridly wrong behavior.



Mime
View raw message