diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2009-11-06 22:38:47 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2009-11-06 22:38:47 +0000 |
commit | f30af94885279cae22ea0c60f74c5444490a3be9 (patch) | |
tree | 32a2479657bc37030fb3833d1c1546dc0fcd8d45 /Src/builtin.c | |
parent | d6c4e4c6922ecf2dd57b66729c7cbf593d0db6bd (diff) | |
download | zsh-f30af94885279cae22ea0c60f74c5444490a3be9.tar.gz zsh-f30af94885279cae22ea0c60f74c5444490a3be9.tar.xz zsh-f30af94885279cae22ea0c60f74c5444490a3be9.zip |
27357: fix compiler warnings in attr module
27358: fix error if $0 altered in sourced file
Diffstat (limited to 'Src/builtin.c')
-rw-r--r-- | Src/builtin.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Src/builtin.c b/Src/builtin.c index f032230b6..47b201264 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -4747,7 +4747,7 @@ bin_dot(char *name, char **argv, UNUSED(Options ops), UNUSED(int func)) enam = arg0 = ztrdup(*argv); if (isset(FUNCTIONARGZERO)) { old0 = argzero; - argzero = arg0; + argzero = ztrdup(arg0); } s = unmeta(enam); errno = ENOENT; @@ -4802,8 +4802,10 @@ bin_dot(char *name, char **argv, UNUSED(Options ops), UNUSED(int func)) if (ret == SOURCE_NOT_FOUND) zwarnnam(name, "%e: %s", errno, enam); zsfree(arg0); - if (old0) + if (old0) { + zsfree(argzero); argzero = old0; + } return ret == SOURCE_OK ? lastval : 128 - ret; } |