diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2004-05-21 11:19:30 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2004-05-21 11:19:30 +0000 |
commit | 665b0950c66e34f687ec2e6f02021b57499daead (patch) | |
tree | bb959c397a49bcdb4df231373e06066e24d1dfe9 | |
parent | ac3bedf522be2b9f0b9e31da1deca4a6835bc04e (diff) | |
download | zsh-665b0950c66e34f687ec2e6f02021b57499daead.tar.gz zsh-665b0950c66e34f687ec2e6f02021b57499daead.tar.xz zsh-665b0950c66e34f687ec2e6f02021b57499daead.zip |
19971: Fix environment nastiness in zexecve()
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/exec.c | 7 | ||||
-rw-r--r-- | Src/params.c | 3 |
3 files changed, 8 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog index 9cf10391d..7199b2950 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-05-21 Peter Stephenson <pws@csr.com> + + * 19971: Src/exec.c, Src/params.c: use putenv to put "_" + into exec'd environment, avoiding horrific hack. + 2004-05-20 Wayne Davison <wayned@users.sourceforge.net> * 19962: Src/builtin.c, Src/hist.c, Doc/Zsh/builtins.yo, diff --git a/Src/exec.c b/Src/exec.c index 1bc461ffa..fe1415845 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -352,18 +352,13 @@ zexecve(char *pth, char **argv) for (eep = argv; *eep; eep++) if (*eep != pth) unmetafy(*eep, NULL); - for (eep = environ; *eep; eep++) - if (**eep == '_' && (*eep)[1] == '=') - break; buf[0] = '_'; buf[1] = '='; if (*pth == '/') strcpy(buf + 2, pth); else sprintf(buf + 2, "%s/%s", pwd, pth); - if (!*eep) - eep[1] = NULL; - *eep = buf; + zputenv(buf); closedumps(); execve(pth, argv, environ); diff --git a/Src/params.c b/Src/params.c index 26ff2c566..4f1d08b92 100644 --- a/Src/params.c +++ b/Src/params.c @@ -3297,7 +3297,8 @@ arrfixenv(char *s, char **t) } -static int +/**/ +int zputenv(char *str) { #ifdef HAVE_PUTENV |