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: mod_include problems (was Re: Showstopper!)
Date Tue, 07 Aug 2001 02:36:49 GMT
Sure looks like that's the solution ... except ...

it points out another possible (?) bug, that the <file> will later disallow symlinks.
The only reason I suspect this will work, is that we redo all directory_walks,
file_walks, and location_walks just a bit later if the per_dir_config changes.

I'd suggest this is safe (in both the _file AND _dirent flavors) so go ahead and
patch :)  

Another observation, total apropo of nothing.  The syntax to enable includes is
now suggested as;

    <FilesMatch "\.shtml">
        SetOutputFilter Includes
    </FilesMatch>

or whatever, correct?

This will always cause per_dir_config to change.  Ergo, we will always redo the
directory walk when we modify filters on a <Files> or <FilesMatch> basis.

Just thought you would like to ponder that :)

Bill


----- Original Message ----- 
From: "Cliff Woolley" <cliffwoolley@yahoo.com>
To: <new-httpd@apache.org>
Cc: "Ryan Bloom" <rbb@covalent.net>; "William Rowe" <wrowe@rowe-clan.net>
Sent: Monday, August 06, 2001 9:27 PM
Subject: Re: mod_include problems (was Re: Showstopper!)


> On Mon, 6 Aug 2001, Cliff Woolley wrote:
> 
> 
> > It's not just that... include1.shtml causes a segfault, which I'm still
> > investigating.
> 
> With optimizations turned off, my backtrace looks more like this:
> 
> #0  0x080abf73 in ap_get_module_config (cv=0x0, m=0x8121d60)
>     at util_debug.c:101
> #1  0x080b089c in ap_allow_options (r=0x8196044) at core.c:500
> #2  0x080b71b6 in ap_sub_req_lookup_file (new_file=0xbfffaeb0
> "inc-two.shtml",
>     r=0x8194034, next_filter=0x8194f9c) at request.c:1517
> #3  0x08062828 in handle_include (ctx=0x81c618c, bb=0xbfffd384,
> r=0x8194034,
>     f=0x8194f84, head_ptr=0x81cb1d8, inserted_head=0xbfffd318)
>     at mod_include.c:784
> ...
> 
> ap_sub_req_lookup_file() is calling ap_allow_options() before
> rnew->per_dir_config is set; ap_allow_options() is therefore calling
> ap_get_module_config with a null cv pointer.  Here's the relevant snippet
> from ap_sub_req_lookup_file in request.c at line 1513, which appears to
> have been broken by revision 1.17 about five days ago:
> 
> 
>     if (ap_allow_options(rnew) & OPT_SYM_LINKS) {
>         if (((rv = apr_stat(&rnew->finfo, rnew->filename,
>                              APR_FINFO_MIN, rnew->pool)) != APR_SUCCESS)
>                                                   && (rv != APR_INCOMPLETE))
>             rnew->finfo.filetype = 0;
>     }
>     else
>         if (((rv = apr_lstat(&rnew->finfo, rnew->filename,
>                              APR_FINFO_MIN, rnew->pool)) != APR_SUCCESS)
>                                                   && (rv != APR_INCOMPLETE))
>             rnew->finfo.filetype = 0;
> 
>     if ((res = check_safe_file(rnew))) {
>         rnew->status = res;
>         return rnew;
>     }
> 
>     rnew->per_dir_config = r->per_dir_config;
> 
> 
> Is it as easy as moving that last line up above the call to
> ap_allow_options()?
> 
> --Cliff
> 
> --------------------------------------------------------------
>    Cliff Woolley
>    cliffwoolley@yahoo.com
>    Charlottesville, VA
> 
> 
> 



Mime
View raw message