]> granicus.if.org Git - apache/commitdiff
Merge r1397172 from trunk:
authorJim Jagielski <jim@apache.org>
Tue, 13 Nov 2012 14:20:20 +0000 (14:20 +0000)
committerJim Jagielski <jim@apache.org>
Tue, 13 Nov 2012 14:20:20 +0000 (14:20 +0000)
"Iterate" directives: Report an error if no arguments are provided.

Submitted by: trawick
Reviewed/backported by: jim

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

CHANGES
STATUS
server/config.c

diff --git a/CHANGES b/CHANGES
index e385262223599e7be0d4604f3f543ae47fa80a9e..58c7227eb3cbf132d221782457da5d7922ade030 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,9 @@
 
 Changes with Apache 2.4.4
  
+  *) "Iterate" directives: Report an error if no arguments are provided.
+     [Jeff Trawick]
+
   *) mod_ssl: Change default for SSLCompression to off, as compression
      causes security issues in most setups. (The so called "CRIME" attack).
      [Stefan Fritsch]
diff --git a/STATUS b/STATUS
index 7b791cd57eab79c90d08b740ce64ba0ee5d65d38..7c919f47d6724612a8516d2f5ef59c5e0bec338c 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -89,10 +89,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
-   * "Iterate" directives: Report an error if no arguments are provided.
-     trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1397172
-     2.4.x patch: trunk patch works
-     +1: trawick, jim, jailletc36
 
    * syslog logging: Remove stray ", referer" at the end of some messages.
      trunk patch: http://svn.apache.org/viewvc?rev=1399708&view=rev
index fb07623b0aece1b25f8892e3c70be59f02ab03da..a23646d0e274c6b542d87563b92913762e22a060 100644 (file)
@@ -976,12 +976,20 @@ static const char *invoke_cmd(const command_rec *cmd, cmd_parms *parms,
         return cmd->AP_TAKE3(parms, mconfig, w, w2, w3);
 
     case ITERATE:
-        while (*(w = ap_getword_conf(parms->pool, &args)) != '\0') {
+        w = ap_getword_conf(parms->pool, &args);
+        
+        if (*w == '\0')
+            return apr_pstrcat(parms->pool, cmd->name,
+                               " requires at least one argument",
+                               cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
 
+        while (*w != '\0') {
             errmsg = cmd->AP_TAKE1(parms, mconfig, w);
 
             if (errmsg && strcmp(errmsg, DECLINE_CMD) != 0)
                 return errmsg;
+
+            w = ap_getword_conf(parms->pool, &args);
         }
 
         return errmsg;