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
SPDX: Mass-update to GPL-2.0-or-later
[exim.git]
/
src
/
src
/
environment.c
diff --git
a/src/src/environment.c
b/src/src/environment.c
index c29cc6c8dd9e6b945854fd5d80f82229117131fb..68adf3c0cac91c92476d739307e4efe834aefe63 100644
(file)
--- a/
src/src/environment.c
+++ b/
src/src/environment.c
@@
-5,6
+5,7
@@
/* Copyright (c) Heiko Schlittermann 2016
* hs@schlittermann.de
* See the file NOTICE for conditions of use and distribution.
/* Copyright (c) Heiko Schlittermann 2016
* hs@schlittermann.de
* See the file NOTICE for conditions of use and distribution.
+ * SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "exim.h"
*/
#include "exim.h"
@@
-24,6
+25,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
@@
-65,8
+69,16
@@
if (add_environment)
int sep = 0;
const uschar * envlist = add_environment;
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;
}