Hi,

I think I may have found a bug in a corner case for the directive AllowOverride


Way to reproduce:

* Latest httpd

* Set configuration for a directory to something similar to:


   <Directory /some/path/here>
        Options +ExecCGI +Includes +SymLinksIfOwnerMatch -FollowSymLinks
        AllowOverride Nonfatal=Override Options=Includes
    </Directory>

* Put in said directory an .htaccess file with a not allowed directive.

Expected behaviour is that the directive not allowed in the .htaccess file gets ignored and there is no 500 error response.

Now, I may put in AllowOverride any directive type along with Nonfatal=Override and it will work as expected.

But the moment I put Options=<Any_Option> , the Nonfatal=Override gets silently ignored. Mind that if I just put Options (no equal sign and no option list), it still works as expected. It is the moment I add the equal sign and an option that the Nonfatal=Override gets ignored thus leading to a 500 error response.

I say Nonfatal=Override because that is actually what I need in my configuration, but Nonfatal=Unknown or Nonfatal=All get ignored too.

I have been reading through the function set_override() in server/core.c to try to make sense of what may be happening, but I cannot figure it out. It has been too long since I last did anything in c.

Any help with this will be greatly appreciated.

Best regards,

--

Eduardo Mayoral.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to