summaryrefslogtreecommitdiff
path: root/server/config.c
diff options
context:
space:
mode:
authorJeff Trawick <trawick@apache.org>2012-10-11 17:11:31 +0000
committerJeff Trawick <trawick@apache.org>2012-10-11 17:11:31 +0000
commitdf3f06b4e8d42538e2502caf42ce1a8e1347b3ba (patch)
treeee891c033b7a052bcf1e5dc1fcfd568902ba44e5 /server/config.c
parent363e1456965f6eb8cd958df5cb6a0daab9e22ea0 (diff)
downloadhttpd-df3f06b4e8d42538e2502caf42ce1a8e1347b3ba.tar.gz
"Iterate" directives: Report an error if no arguments are provided.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1397172 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'server/config.c')
-rw-r--r--server/config.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/server/config.c b/server/config.c
index a9adddd75f..ffc6694870 100644
--- a/server/config.c
+++ b/server/config.c
@@ -980,12 +980,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;