]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Allow Require expr to work when the expression is quoted.
authorBen Reser <breser@apache.org>
Mon, 7 Apr 2014 22:38:53 +0000 (22:38 +0000)
committerBen Reser <breser@apache.org>
Mon, 7 Apr 2014 22:38:53 +0000 (22:38 +0000)
For example as appears in our documentation:
Require expr "%{TIME_HOUR} -ge 9 && %{TIME_HOUR} -le 17"

PR: 56235

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1585609 13f79535-47bb-0310-9956-ffa450edef68

modules/aaa/mod_authz_core.c

index c9ed22ff1cf162b77b51e522b31ecaa119bc2e87..e2fad4cd8803d952cec5dc5e901acbcffb618da7 100644 (file)
@@ -1062,6 +1062,16 @@ static const char *expr_parse_config(cmd_parms *cmd, const char *require_line,
     const char *expr_err = NULL;
     struct require_expr_info *info = apr_pcalloc(cmd->pool, sizeof(*info));
 
+    /* if the expression happens to be surrounded by quotes, skip them */
+    if (require_line[0] == '"') {
+        apr_size_t len = strlen(require_line);
+
+        if (require_line[len-1] == '"')
+            require_line = apr_pstrndup(cmd->temp_pool,
+                                        require_line + 1,
+                                        len - 2);
+    }
+
     apr_pool_userdata_setn(info, REQUIRE_EXPR_NOTE, apr_pool_cleanup_null,
                           cmd->temp_pool);
     info->expr = ap_expr_parse_cmd(cmd, require_line, 0, &expr_err,