about summary refs log tree commit diff
path: root/Src/exec.c
diff options
context:
space:
mode:
authorPeter Stephenson <p.w.stephenson@ntlworld.com>2017-09-10 18:02:52 +0100
committerPeter Stephenson <p.w.stephenson@ntlworld.com>2017-09-10 18:02:52 +0100
commitc9df6bc8d46415e270273777c80025948762e897 (patch)
treeeeca2dfc78f8b8f7b36a44fd347fd2df80d309f3 /Src/exec.c
parente44600d9aac905aea08050c7387d6effd52c8539 (diff)
downloadzsh-c9df6bc8d46415e270273777c80025948762e897.tar.gz
zsh-c9df6bc8d46415e270273777c80025948762e897.tar.xz
zsh-c9df6bc8d46415e270273777c80025948762e897.zip
41662: exec -a arguments weren't sanitised
Diffstat (limited to 'Src/exec.c')
-rw-r--r--Src/exec.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/Src/exec.c b/Src/exec.c
index 76a6bb1a4..e2432fda4 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -3007,6 +3007,9 @@ execcmd_exec(Estate state, Execcmd_params eparams,
 		}
 		if (exec_argv0) {
 		    char *str, *s;
+		    exec_argv0 = dupstring(exec_argv0);
+		    remnulargs(exec_argv0);
+		    untokenize(exec_argv0);
 		    size_t sz = strlen(exec_argv0);
 		    str = s = zalloc(5 + 1 + sz + 1);
 		    strcpy(s, "ARGV0=");