]> granicus.if.org Git - apache/commitdiff
Use apr_pcalloc for rewritemap_entry struct, to avoid uninitialized entries.
authorStefan Fritsch <sf@apache.org>
Mon, 6 Aug 2012 20:40:37 +0000 (20:40 +0000)
committerStefan Fritsch <sf@apache.org>
Mon, 6 Aug 2012 20:40:37 +0000 (20:40 +0000)
PR: 53663
Submitted by: Mikhail T. <mi apache aldan algebra com>

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

modules/mappers/mod_rewrite.c

index 7d9df248316b1098272c96e5a6f6e710419fd17c..278769d82589e65fb7accc0d8c97a435e3c2c858 100644 (file)
@@ -2938,8 +2938,7 @@ static const char *cmd_rewritemap(cmd_parms *cmd, void *dconf, const char *a1,
 
     sconf = ap_get_module_config(cmd->server->module_config, &rewrite_module);
 
-    newmap = apr_palloc(cmd->pool, sizeof(rewritemap_entry));
-    newmap->func = NULL;
+    newmap = apr_pcalloc(cmd->pool, sizeof(rewritemap_entry));
 
     if (strncasecmp(a2, "txt:", 4) == 0) {
         if ((fname = ap_server_root_relative(cmd->pool, a2+4)) == NULL) {
@@ -2950,7 +2949,6 @@ static const char *cmd_rewritemap(cmd_parms *cmd, void *dconf, const char *a1,
         newmap->type      = MAPTYPE_TXT;
         newmap->datafile  = fname;
         newmap->checkfile = fname;
-        newmap->checkfile2= NULL;
         newmap->cachename = apr_psprintf(cmd->pool, "%pp:%s",
                                          (void *)cmd->server, a1);
     }
@@ -2963,7 +2961,6 @@ static const char *cmd_rewritemap(cmd_parms *cmd, void *dconf, const char *a1,
         newmap->type      = MAPTYPE_RND;
         newmap->datafile  = fname;
         newmap->checkfile = fname;
-        newmap->checkfile2= NULL;
         newmap->cachename = apr_psprintf(cmd->pool, "%pp:%s",
                                          (void *)cmd->server, a1);
     }
@@ -3013,6 +3010,7 @@ static const char *cmd_rewritemap(cmd_parms *cmd, void *dconf, const char *a1,
         if (dbd_prepare == NULL) {
             return "RewriteMap types dbd and fastdbd require mod_dbd!";
         }
+        newmap->checkfile = NULL;
         if ((a2[0] == 'd') || (a2[0] == 'D')) {
             newmap->type = MAPTYPE_DBD;
             fname = a2+4;
@@ -3037,17 +3035,10 @@ static const char *cmd_rewritemap(cmd_parms *cmd, void *dconf, const char *a1,
         }
 
         newmap->type      = MAPTYPE_PRG;
-        newmap->datafile  = NULL;
         newmap->checkfile = newmap->argv[0];
-        newmap->checkfile2= NULL;
-        newmap->cachename = NULL;
     }
     else if (strncasecmp(a2, "int:", 4) == 0) {
         newmap->type      = MAPTYPE_INT;
-        newmap->datafile  = NULL;
-        newmap->checkfile = NULL;
-        newmap->checkfile2= NULL;
-        newmap->cachename = NULL;
         newmap->func      = (char *(*)(request_rec *,char *))
                             apr_hash_get(mapfunc_hash, a2+4, strlen(a2+4));
         if (newmap->func == NULL) {
@@ -3064,12 +3055,9 @@ static const char *cmd_rewritemap(cmd_parms *cmd, void *dconf, const char *a1,
         newmap->type      = MAPTYPE_TXT;
         newmap->datafile  = fname;
         newmap->checkfile = fname;
-        newmap->checkfile2= NULL;
         newmap->cachename = apr_psprintf(cmd->pool, "%pp:%s",
                                          (void *)cmd->server, a1);
     }
-    newmap->fpin  = NULL;
-    newmap->fpout = NULL;
 
     if (newmap->checkfile
         && (apr_stat(&st, newmap->checkfile, APR_FINFO_MIN,