X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fenvironment.c;h=c29cc6c8dd9e6b945854fd5d80f82229117131fb;hb=8f84b06a462cb02821c09aeeb8ca77f1bbdc00cb;hp=c394eb7e7b9f9b31b576857cbe27db5fc105c615;hpb=93a680e4c9c899d86ff3fde0933fb5367b34af50;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/environment.c b/src/src/environment.c index c394eb7e7..c29cc6c8d 100644 --- a/src/src/environment.c +++ b/src/src/environment.c @@ -38,8 +38,8 @@ if (!keep_environment || *keep_environment == '\0') } else if (Ustrcmp(keep_environment, "*") != 0) { - uschar **p; - if (environ) for (p = USS environ; *p; /* see below */) + rmark reset_point = store_mark(); + if (environ) for (uschar ** p = USS environ; *p; /* see below */) { /* It's considered broken if we do not find the '=', according to Florian Weimer. For now we ignore such strings. unsetenv() would complain, @@ -55,18 +55,18 @@ else if (Ustrcmp(keep_environment, "*") != 0) if (os_unsetenv(name) < 0) return FALSE; else p = USS environ; /* RESTART from the beginning */ else p++; - store_reset(name); } } + store_reset(reset_point); } if (add_environment) { - uschar * p; - int sep = 0; - const uschar * envlist = 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))) putenv(CS p); } - return TRUE; +return TRUE; }