X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/6b5cbf740022f7f57a425d212499f156b1641d49..1d28cc061677bd07d9bed48dd84bd5c590247043:/src/src/environment.c diff --git a/src/src/environment.c b/src/src/environment.c index f3a90660e..68adf3c0c 100644 --- 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. + * SPDX-License-Identifier: GPL-2.0-or-later */ #include "exim.h" @@ -24,6 +25,9 @@ Returns: TRUE if successful 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 @@ -59,17 +63,22 @@ else if (Ustrcmp(keep_environment, "*") != 0) } store_reset(reset_point); } -#ifndef DISABLE_TLS -tls_clean_env(); -#endif 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; }