]> granicus.if.org Git - apache/commitdiff
Fix a null pointer dereference in the merge_env_dir_configs function of
authorPaul J. Reder <rederpj@apache.org>
Sat, 24 Aug 2002 19:03:34 +0000 (19:03 +0000)
committerPaul J. Reder <rederpj@apache.org>
Sat, 24 Aug 2002 19:03:34 +0000 (19:03 +0000)
the mod_env module. PR 11791     [Paul J. Reder]

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

CHANGES
modules/metadata/mod_env.c

diff --git a/CHANGES b/CHANGES
index 8c2b0f40ac216dfbf22caeced9495e9b7503086c..ff8cb84db623d191efc9904bb963cfc0f1a24aaf 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,9 @@
 Changes with Apache 2.0.41
 
+  *) Fix a null pointer dereference in the merge_env_dir_configs
+     function of the mod_env module. PR 11791
+     [Paul J. Reder]
+
   *) New option to ServerTokens 'maj[or]'. Only show the major version
      Also Surfaced this directive in the standard config (default FULL)
      [Ian Holsman]
index 94166d3e12c1440f0f5f7c9801758c25f81210a9..adb3b26fda441206c9e76462ca398224029d99b6 100644 (file)
@@ -111,17 +111,21 @@ static void *merge_env_dir_configs(apr_pool_t *p, void *basev, void *addv)
     res->unsetenv = NULL;
 
     arr = apr_table_elts(add->unsetenv);
-    elts = (const apr_table_entry_t *)arr->elts;
+    if (arr) {
+        elts = (const apr_table_entry_t *)arr->elts;
 
-    for (i = 0; i < arr->nelts; ++i) {
-        apr_table_unset(res->vars, elts[i].key);
+        for (i = 0; i < arr->nelts; ++i) {
+            apr_table_unset(res->vars, elts[i].key);
+        }
     }
 
     arr = apr_table_elts(add->vars);
-    elts = (const apr_table_entry_t *)arr->elts;
+    if (arr) {
+        elts = (const apr_table_entry_t *)arr->elts;
 
-    for (i = 0; i < arr->nelts; ++i) {
-        apr_table_setn(res->vars, elts[i].key, elts[i].val);
+        for (i = 0; i < arr->nelts; ++i) {
+            apr_table_setn(res->vars, elts[i].key, elts[i].val);
+        }
     }
 
     return res;