martin 98/08/31 06:33:52
Modified: src CHANGES src/main http_core.c Log: Some time ago I noticed that <IfModule ! modname.c> -> TRUE, no matter what 'modname' is. <IfModule !modname.c> -> works as documented So, to avoid problems when people add a space by mistake, I changed the RAW_ARGS to a TAKE1 because the trailing "modname.c>" or "!modname.c>" is always one arg, and we do not intend to allow anything after the '>' character anyway. Reviewed by: Ken Coar, Brian Behlendorf Revision Changes Path 1.1041 +8 -0 apache-1.3/src/CHANGES Index: CHANGES =================================================================== RCS file: /home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.1040 retrieving revision 1.1041 diff -u -r1.1040 -r1.1041 --- CHANGES 1998/08/31 01:18:51 1.1040 +++ CHANGES 1998/08/31 13:33:50 1.1041 @@ -1,5 +1,13 @@ Changes with Apache 1.3.2 + *) The <IfModule and <IfDefine block starting directives now only + allow exactly one argument. Previously, the optional negation + character '!' could be separated by whitespace without a syntax + error being reported, albeit defeating the IfModule functionality + (enclosed directives would ALWAYS be executed). By using the + stricter syntax, these hard-to-track errors can be avoided. + [Martin Kraemer] + *) Simplify handling of IndexOptions in mod_autoindex -- and BTW cause the standalone FancyIndexing directive to logically OR into any existing IndexOptions settings rather than wiping 1.226 +2 -2 apache-1.3/src/main/http_core.c Index: http_core.c =================================================================== RCS file: /home/cvs/apache-1.3/src/main/http_core.c,v retrieving revision 1.225 retrieving revision 1.226 diff -u -r1.225 -r1.226 --- http_core.c 1998/08/26 20:01:22 1.225 +++ http_core.c 1998/08/31 13:33:51 1.226 @@ -2447,11 +2447,11 @@ "authentication directives when accessed using specified HTTP methods" }, { "</Limit>", endlimit_section, NULL, OR_ALL, NO_ARGS, "Marks end of <Limit>" }, -{ "<IfModule", start_ifmod, NULL, OR_ALL, RAW_ARGS, +{ "<IfModule", start_ifmod, NULL, OR_ALL, TAKE1, "Container for directives based on existance of specified modules" }, { end_ifmodule_section, end_ifmod, NULL, OR_ALL, NO_ARGS, "Marks end of <IfModule>" }, -{ "<IfDefine", start_ifdefine, NULL, OR_ALL, RAW_ARGS, +{ "<IfDefine", start_ifdefine, NULL, OR_ALL, TAKE1, "Container for directives based on existance of command line defines" }, { end_ifdefine_section, end_ifdefine, NULL, OR_ALL, NO_ARGS, "Marks end of <IfDefine>" },