From b494ab9a6e3947008eea360475a41b00adffc46f Mon Sep 17 00:00:00 2001 From: "Paul J. Reder" Date: Sat, 24 Aug 2002 19:03:34 +0000 Subject: [PATCH] Fix a null pointer dereference in the merge_env_dir_configs function of 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 | 4 ++++ modules/metadata/mod_env.c | 16 ++++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/CHANGES b/CHANGES index 8c2b0f40ac..ff8cb84db6 100644 --- 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] diff --git a/modules/metadata/mod_env.c b/modules/metadata/mod_env.c index 94166d3e12..adb3b26fda 100644 --- a/modules/metadata/mod_env.c +++ b/modules/metadata/mod_env.c @@ -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; -- 2.40.0