X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fsrc%2Fenvironment.c;h=9cb90c86fcc00e9a20863196548e115a9ab3cd63;hb=2fa25efce2a183e8886d66e2f1a0ae83ac964d8e;hp=c29cc6c8dd9e6b945854fd5d80f82229117131fb;hpb=f3ebb786e451da973560f1c9d8cdb151d25108b5;p=exim.git diff --git a/src/src/environment.c b/src/src/environment.c index c29cc6c8d..9cb90c86f 100644 --- a/src/src/environment.c +++ b/src/src/environment.c @@ -24,6 +24,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 @@ -65,8 +68,16 @@ if (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; }