]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
revert r1642852 for 2.4.x release purposes. It appears to break
authorEric Covener <covener@apache.org>
Mon, 19 Jan 2015 04:16:28 +0000 (04:16 +0000)
committerEric Covener <covener@apache.org>
Mon, 19 Jan 2015 04:16:28 +0000 (04:16 +0000)
too much DirectoryMatch matching and is not critical to have in.

Discussion on dev@ on trunk rev commit msg for r1635428

Also, I don't think the addition in the middle of the core_dir_config
given that the core_dir_config is exposed to modules as kind
of a special case.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1652902 13f79535-47bb-0310-9956-ffa450edef68

STATUS
include/http_core.h
server/core.c
server/request.c

diff --git a/STATUS b/STATUS
index 13ff1124e5967ec3fcaab1246cf7b4cda7b38f0b..6ce4f4690d62db63e4ffcca591d050ddd1f6a050 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -105,6 +105,10 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
+   * core: Do not match files when using DirectoryMatch. PR 41867.
+     trunk patch: http://svn.apache.org/r1635428
+     2.4.x patch: http://people.apache.org/~jkaluza/patches/httpd-2.4.x-directorymatch.patch
+     +1: jkaluza, covener, ylavic
 
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ New proposals should be added at the end of the list ]
index 4a39d96c49518e03512249e1709aa719c6f6167d..5cef6224fc6fa530b728621a5c83c5c2db3c2183 100644 (file)
@@ -597,7 +597,6 @@ typedef struct {
 #define AP_CONDITION_ELSE      2
 #define AP_CONDITION_ELSEIF    (AP_CONDITION_ELSE|AP_CONDITION_IF)
     unsigned int condition_ifelse : 2; /* is this an <If>, <ElseIf>, or <Else> */
-    unsigned int d_is_directory : 1; /* Whether core_dir_config is Directory* */
 
     ap_expr_info_t *condition;   /* Conditionally merge <If> sections */
 
index 22bb2b14cb6aa04b5a685b58ea8da70b21ff07a7..e307e92bb243ff35474a095fc08c58377796ba73 100644 (file)
@@ -2164,7 +2164,6 @@ static const char *dirsection(cmd_parms *cmd, void *mconfig, const char *arg)
     conf->r = r;
     conf->d = cmd->path;
     conf->d_is_fnmatch = (apr_fnmatch_test(conf->d) != 0);
-    conf->d_is_directory = 1;
 
     if (r) {
         conf->refs = apr_array_make(cmd->pool, 8, sizeof(char *));
index 8d660e2817e0b51eb2021255f941068e08360e76..af0a697a9f42b4e41d3eb1a47b3308cdda4bcd66 100644 (file)
@@ -1212,13 +1212,6 @@ AP_DECLARE(int) ap_directory_walk(request_rec *r)
                 pmatch = apr_palloc(rxpool, nmatch*sizeof(ap_regmatch_t));
             }
 
-            /* core_dir_config is Directory*, but the requested file is
-             * not a directory, so although the regexp could match,
-             * we skip it. */
-            if (entry_core->d_is_directory && r->finfo.filetype != APR_DIR) {
-                continue;
-            }
-
             if (ap_regexec(entry_core->r, r->filename, nmatch, pmatch, 0)) {
                 continue;
             }