Nick Kew wrote:
I had in mind to fix this tonight.  But it's too complex to get right
late at night after a long day and a couple of glasses of wine.

A look at it suggests we have a bug in ap_directory_walk
affecting all versions.  The "cached dir walk" optimisation at
lines 555-583 (Trunk) is losing the symlink check.

The quickest fix would be to scrap the optimisation altogether.
Otherwise, we need to run the extra checks at lines ~942-1014
at that point.

Scrapping the optimization is a red herring.

The optimization logic -should- be noting where the original pass varies
from the current pass through merging, and then taking a left turn to then
construct fresh merges of previously-unmerged sections.

I suspect there 1) might be an overly agressive shortcut out of the merge
checking, and 2) that r->filename might not be updated early enough by
mod_dir to catch index.html.  If r->filename is still /foo/bar/ and not
/foo/bar/index.html then the entire dir_walk assumption is a red herring.

I am spending cycles tonight looking at this, and am likely to add some
diagnostics that add some insight to what dir_walk actually walks and even
what it merges, for the benefit of users diagnosing their config.

Bill

Reply via email to