Commit cae3d9f9 authored by Hank Ibell's avatar Hank Ibell
Browse files

core: Fix incorrect substitution of env vars in directives containing multiple env vars.

In ap_resolve_env(), the string returned from getenv() should be copied since
the returned string may be statically allocated.

This fixes an issue where the value for the last env var is substituted for all
env vars in a directive containing multiple env vars.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1848236 13f79535-47bb-0310-9956-ffa450edef68
parent b2b0b76d
Loading
Loading
Loading
Loading
+3 −0
Changes for CHANGES: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
                                                         -*- coding: utf-8 -*-
Changes with Apache 2.5.1

  *) core: Incorrect values for environment variables are substituted when
     multiple environment variables are specified in a directive. [Hank Ibell]

  *) core: Split out the ability to parse wildcard files and directories
     from the Include/IncludeOptional directives into a generic set of
     functions ap_dir_nofnmatch() and ap_dir_fnmatch(). [Graham Leggett]
+1 −1
Changes for server/core.c: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -1441,7 +1441,7 @@ AP_DECLARE(const char *) ap_resolve_env(apr_pool_t *p, const char * word)
                if (server_config_defined_vars)
                    word = apr_table_get(server_config_defined_vars, name);
                if (!word)
                    word = getenv(name);
                    word = apr_pstrdup(p, getenv(name));
                if (word) {
                    current->string = word;
                    current->len = strlen(word);