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" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: "Ryan Bloom" <[EMAIL PROTECTED]>; "William Rowe" <[EMAIL PROTECTED]>
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
> [EMAIL PROTECTED]
> Charlottesville, VA
>
>
>