> I think the problem might be in this block:
>
> static void *merge_mime_dir_configs(apr_pool_t *p, void *basev, void *addv)
> {
>     mime_dir_config *base = (mime_dir_config *) basev;
>     mime_dir_config *add = (mime_dir_config *) addv;
>     mime_dir_config *new = apr_palloc(p, sizeof(mime_dir_config));
>
>     int i;
>     attrib_info *suffix;
>
>     if (base->extension_mappings && add->extension_mappings) {
>         if (base->copy_mappings)
>             new->extension_mappings = base->extension_mappings;
>         else {
>             new->extension_mappings = apr_hash_make(p);
>             overlay_extension_mappings(p, base->extension_mappings,
>                                        new->extension_mappings);
>         }
>         overlay_extension_mappings(p, add->extension_mappings,
>                                    new->extension_mappings);
>
> If base->copy_mappings is true upon entry into the function,
> then the call to overlay_extension_mappings at the end will
> use p to allocate data for insertion into base->extension_mappings.
> If base->extension_mappings has been allocated from a pool with
> a longer lifetime than p, then we'll eventually segv.

If this is happening, then we have much bigger problems.  All of the code
that is involved with these hash tables is run at server startup.  It is all run
using pconf.  The only time this might not be true, is if we have a .htaccess
file that is changing the config.  That might be able to cause this problem, but
I have been unable to reproduce this.  I have tried with a .htaccess, but it is
also possible that another part of my config is not setup properly.

Ryan

______________________________________________________________
Ryan Bloom                              [EMAIL PROTECTED]
Covalent Technologies                   [EMAIL PROTECTED]
--------------------------------------------------------------

Reply via email to