From a4ff8e69570cbdb8e7d5bf1d5cc4000ffe63e15e Mon Sep 17 00:00:00 2001 From: "Barton E. Schaefer" Date: Fri, 20 Feb 2015 18:45:36 -0800 Subject: 34590: queue_signals() around more scopes that manipulate global state --- Src/exec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'Src/exec.c') 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; -- cgit 1.4.1