about summary refs log tree commit diff
path: root/Src/exec.c
diff options
context:
space:
mode:
authorBarton E. Schaefer <schaefer@zsh.org>2015-02-20 18:45:36 -0800
committerBarton E. Schaefer <schaefer@zsh.org>2015-02-20 18:45:36 -0800
commita4ff8e69570cbdb8e7d5bf1d5cc4000ffe63e15e (patch)
treec4a880ad9be1ccc491a6fbe12bb2d2b9afe312f6 /Src/exec.c
parentb237ba0a8eaa5001283ac8448872021723b90aff (diff)
downloadzsh-a4ff8e69570cbdb8e7d5bf1d5cc4000ffe63e15e.tar.gz
zsh-a4ff8e69570cbdb8e7d5bf1d5cc4000ffe63e15e.tar.xz
zsh-a4ff8e69570cbdb8e7d5bf1d5cc4000ffe63e15e.zip
34590: queue_signals() around more scopes that manipulate global state
Diffstat (limited to 'Src/exec.c')
-rw-r--r--Src/exec.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/Src/exec.c b/Src/exec.c
index 947b815f9..1a6149ad7 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -2337,6 +2337,7 @@ addvars(Estate state, Wordcode pc, int addflags)
 void
 setunderscore(char *str)
 {
+    queue_signals();
     if (str && *str) {
 	int l = strlen(str) + 1, nl = (l + 31) & ~31;
 
@@ -2354,6 +2355,7 @@ setunderscore(char *str)
 	*zunderscore = '\0';
 	underscoreused = 1;
     }
+    unqueue_signals();
 }
 
 /* These describe the type of expansions that need to be done on the words
@@ -5319,7 +5321,7 @@ execsave(void)
 {
     struct execstack *es;
 
-    es = (struct execstack *) malloc(sizeof(struct execstack));
+    es = (struct execstack *) zalloc(sizeof(struct execstack));
     es->list_pipe_pid = list_pipe_pid;
     es->nowait = nowait;
     es->pline_level = pline_level;