summaryrefslogtreecommitdiff
path: root/httpd-2.4.51-r1811831.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-08-05 02:42:43 +0000
committerCoprDistGit <infra@openeuler.org>2024-08-05 02:42:43 +0000
commit03f1098961e7cd0a5a3b7d93ca59f9176b7f63ac (patch)
tree4d0a57939694fecbd2850cf3f43e9aaa1ea60017 /httpd-2.4.51-r1811831.patch
parent707da8b4b72f9e9ec132f1a285b9ce28b6a2b667 (diff)
automatic import of httpdopeneuler24.03_LTS
Diffstat (limited to 'httpd-2.4.51-r1811831.patch')
-rw-r--r--httpd-2.4.51-r1811831.patch81
1 files changed, 81 insertions, 0 deletions
diff --git a/httpd-2.4.51-r1811831.patch b/httpd-2.4.51-r1811831.patch
new file mode 100644
index 0000000..b8d8215
--- /dev/null
+++ b/httpd-2.4.51-r1811831.patch
@@ -0,0 +1,81 @@
+diff --git a/server/util_script.c b/server/util_script.c
+index 4121ae0..b7f8674 100644
+--- a/server/util_script.c
++++ b/server/util_script.c
+@@ -92,9 +92,21 @@ static void add_unless_null(apr_table_t *table, const char *name, const char *va
+ }
+ }
+
+-static void env2env(apr_table_t *table, const char *name)
++/* Sets variable @name in table @dest from r->subprocess_env if
++ * available, else from the environment, else from @fallback if
++ * non-NULL. */
++static void env2env(apr_table_t *dest, request_rec *r,
++ const char *name, const char *fallback)
+ {
+- add_unless_null(table, name, getenv(name));
++ const char *val;
++
++ val = apr_table_get(r->subprocess_env, name);
++ if (!val)
++ val = apr_pstrdup(r->pool, getenv(name));
++ if (!val)
++ val = apr_pstrdup(r->pool, fallback);
++ if (val)
++ apr_table_addn(dest, name, val);
+ }
+
+ AP_DECLARE(char **) ap_create_environment(apr_pool_t *p, apr_table_t *t)
+@@ -211,37 +223,29 @@ AP_DECLARE(void) ap_add_common_vars(request_rec *r)
+ add_unless_null(e, http2env(r, hdrs[i].key), hdrs[i].val);
+ }
+
+- env_temp = apr_table_get(r->subprocess_env, "PATH");
+- if (env_temp == NULL) {
+- env_temp = getenv("PATH");
+- }
+- if (env_temp == NULL) {
+- env_temp = DEFAULT_PATH;
+- }
+- apr_table_addn(e, "PATH", apr_pstrdup(r->pool, env_temp));
+-
++ env2env(e, r, "PATH", DEFAULT_PATH);
+ #if defined(WIN32)
+- env2env(e, "SystemRoot");
+- env2env(e, "COMSPEC");
+- env2env(e, "PATHEXT");
+- env2env(e, "WINDIR");
++ env2env(e, r, "SystemRoot", NULL);
++ env2env(e, r, "COMSPEC", NULL);
++ env2env(e, r, "PATHEXT", NULL);
++ env2env(e, r, "WINDIR", NULL);
+ #elif defined(OS2)
+- env2env(e, "COMSPEC");
+- env2env(e, "ETC");
+- env2env(e, "DPATH");
+- env2env(e, "PERLLIB_PREFIX");
++ env2env(e, r, "COMSPEC", NULL);
++ env2env(e, r, "ETC", NULL);
++ env2env(e, r, "DPATH", NULL);
++ env2env(e, r, "PERLLIB_PREFIX", NULL);
+ #elif defined(BEOS)
+- env2env(e, "LIBRARY_PATH");
++ env2env(e, r, "LIBRARY_PATH", NULL);
+ #elif defined(DARWIN)
+- env2env(e, "DYLD_LIBRARY_PATH");
++ env2env(e, r, "DYLD_LIBRARY_PATH", NULL);
+ #elif defined(_AIX)
+- env2env(e, "LIBPATH");
++ env2env(e, r, "LIBPATH", NULL);
+ #elif defined(__HPUX__)
+ /* HPUX PARISC 2.0W knows both, otherwise redundancy is harmless */
+- env2env(e, "SHLIB_PATH");
+- env2env(e, "LD_LIBRARY_PATH");
++ env2env(e, r, "SHLIB_PATH", NULL);
++ env2env(e, r, "LD_LIBRARY_PATH", NULL);
+ #else /* Some Unix */
+- env2env(e, "LD_LIBRARY_PATH");
++ env2env(e, r, "LD_LIBRARY_PATH", NULL);
+ #endif
+
+ apr_table_addn(e, "SERVER_SIGNATURE", ap_psignature("", r));