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