git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
OpenSSL: feed keylog & OCSP debug through normal channel
[exim.git]
/
src
/
src
/
environment.c
diff --git
a/src/src/environment.c
b/src/src/environment.c
index f3a90660ee9722c5495f6663e3a644bf2dc70ba0..9cb90c86fcc00e9a20863196548e115a9ab3cd63 100644
(file)
--- a/
src/src/environment.c
+++ b/
src/src/environment.c
@@
-24,6
+24,9
@@
Returns: TRUE if successful
BOOL
cleanup_environment()
{
BOOL
cleanup_environment()
{
+int old_pool = store_pool;
+store_pool = POOL_PERM; /* Need perm memory for any created env vars */
+
if (!keep_environment || *keep_environment == '\0')
{
/* From: https://github.com/dovecot/core/blob/master/src/lib/env-util.c#L55
if (!keep_environment || *keep_environment == '\0')
{
/* From: https://github.com/dovecot/core/blob/master/src/lib/env-util.c#L55
@@
-59,17
+62,22
@@
else if (Ustrcmp(keep_environment, "*") != 0)
}
store_reset(reset_point);
}
}
store_reset(reset_point);
}
-#ifndef DISABLE_TLS
-tls_clean_env();
-#endif
if (add_environment)
{
uschar * p;
int sep = 0;
const uschar * envlist = add_environment;
if (add_environment)
{
uschar * p;
int sep = 0;
const uschar * envlist = add_environment;
- while ((p = string_nextinlist(&envlist, &sep, NULL, 0))) putenv(CS p);
+ while ((p = string_nextinlist(&envlist, &sep, NULL, 0)))
+ {
+ DEBUG(D_expand) debug_printf("adding %s\n", p);
+ putenv(CS p);
+ }
}
}
+#ifndef DISABLE_TLS
+tls_clean_env();
+#endif
+store_pool = old_pool;
return TRUE;
}
return TRUE;
}