From: Jim Jagielski Date: Tue, 13 Nov 2012 14:20:20 +0000 (+0000) Subject: Merge r1397172 from trunk: X-Git-Tag: 2.4.4~439 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7b852b0945754e41661577c6f426dcbae24cdfc6;p=apache Merge r1397172 from trunk: "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 --- diff --git a/CHANGES b/CHANGES index e385262223..58c7227eb3 100644 --- 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 7b791cd57e..7c919f47d6 100644 --- 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 diff --git a/server/config.c b/server/config.c index fb07623b0a..a23646d0e2 100644 --- a/server/config.c +++ b/server/config.c @@ -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;