X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fsrc%2Fenvironment.c;h=c394eb7e7b9f9b31b576857cbe27db5fc105c615;hb=9fa3eec7bb2e6a14a0b62dbc713c0ba5b2b5cd34;hp=8542dc0d265970c3509352b3f86e95e192534f44;hpb=d1af83598f7d6b32516a11bb28e569d592a05c48;p=exim.git diff --git a/src/src/environment.c b/src/src/environment.c index 8542dc0d2..c394eb7e7 100644 --- a/src/src/environment.c +++ b/src/src/environment.c @@ -44,14 +44,15 @@ else if (Ustrcmp(keep_environment, "*") != 0) /* It's considered broken if we do not find the '=', according to Florian Weimer. For now we ignore such strings. unsetenv() would complain, getenv() would complain. */ - uschar *eqp = Ustrchr(*p, '='); + uschar * eqp = Ustrchr(*p, '='); if (eqp) { - uschar *name = string_copyn(*p, eqp - *p); + uschar * name = string_copyn(*p, eqp - *p); + if (OK != match_isinlist(name, CUSS &keep_environment, 0, NULL, NULL, MCL_NOEXPAND, FALSE, NULL)) - if (unsetenv(CS name) < 0) return FALSE; + if (os_unsetenv(name) < 0) return FALSE; else p = USS environ; /* RESTART from the beginning */ else p++; store_reset(name); @@ -60,11 +61,11 @@ else if (Ustrcmp(keep_environment, "*") != 0) } if (add_environment) { - uschar *p; + uschar * p; int sep = 0; - const uschar* envlist = add_environment; - while ((p = string_nextinlist(&envlist, &sep, NULL, 0))) - putenv(CS p); + const uschar * envlist = add_environment; + + while ((p = string_nextinlist(&envlist, &sep, NULL, 0))) putenv(CS p); } return TRUE;