]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
don't use data allocated from ptemp when parsing .htaccess
authorStefan Fritsch <sf@apache.org>
Sat, 25 Sep 2010 17:46:52 +0000 (17:46 +0000)
committerStefan Fritsch <sf@apache.org>
Sat, 25 Sep 2010 17:46:52 +0000 (17:46 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1001284 13f79535-47bb-0310-9956-ffa450edef68

modules/aaa/mod_authz_host.c

index b42f0326da7c82a597b85bbfb011dc5a4391ea9a..20c71697d42a72c248ecf7faac6e0dabf13591d1 100644 (file)
@@ -113,8 +113,9 @@ static const char *ip_parse_config(cmd_parms *cmd,
         char *mask;
         apr_status_t rv;
 
-        *ip = apr_hash_get(parsed_subnets, w, APR_HASH_KEY_STRING);
-        if (*ip) {
+        if (parsed_subnets &&
+            (*ip = apr_hash_get(parsed_subnets, w, APR_HASH_KEY_STRING)) != NULL)
+        {
             /* we already have parsed this subnet */
             ip++;
             continue;
@@ -136,7 +137,8 @@ static const char *ip_parse_config(cmd_parms *cmd,
                                 w, msgbuf);
         }
 
-        apr_hash_set(parsed_subnets, w, APR_HASH_KEY_STRING, *ip);
+        if (parsed_subnets)
+            apr_hash_set(parsed_subnets, w, APR_HASH_KEY_STRING, *ip);
         ip++;
     }
 
@@ -256,9 +258,19 @@ static int authz_host_pre_config(apr_pool_t *p, apr_pool_t *plog,
     return OK;
 }
 
+static int authz_host_post_config(apr_pool_t *p, apr_pool_t *plog,
+                                  apr_pool_t *ptemp, server_rec *s)
+{
+    /* make sure we don't use this during .htaccess parsing */
+    parsed_subnets = NULL;
+
+    return OK;
+}
+
 static void register_hooks(apr_pool_t *p)
 {
     ap_hook_pre_config(authz_host_pre_config, NULL, NULL, APR_HOOK_MIDDLE);
+    ap_hook_post_config(authz_host_post_config, NULL, NULL, APR_HOOK_MIDDLE);
 
     ap_register_auth_provider(p, AUTHZ_PROVIDER_GROUP, "ip",
                               AUTHZ_PROVIDER_VERSION,