summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarton E. Schaefer <schaefer@zsh.org>2013-09-26 21:27:27 -0700
committerBarton E. Schaefer <schaefer@zsh.org>2013-09-26 21:27:27 -0700
commitae92cadc75fbf7e8ec356cf09d3f73db9868424b (patch)
tree93dc958625cb1ff2c6f47c35ab0599e3d0fc1101
parent98b0828c63a5e77ad313896029c854b0c3721cc9 (diff)
downloadzsh-ae92cadc75fbf7e8ec356cf09d3f73db9868424b.tar.gz
zsh-ae92cadc75fbf7e8ec356cf09d3f73db9868424b.zip
31772: queue_signals() to prevent re-entry into endparamscope().
-rw-r--r--ChangeLog3
-rw-r--r--Src/params.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 3fd805473..2c50b3228 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2013-09-26 Barton E. Schaefer <schaefer@zsh.org>
+ * 31772: Src/params.c: queue_signals() to prevent re-entry into
+ endparamscope().
+
* 31770: Src/hist.c: memmove() instead of memcpy() for overlapping
regions.
diff --git a/Src/params.c b/Src/params.c
index 8649178ef..d6711e4fa 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -4667,10 +4667,12 @@ startparamscope(void)
mod_export void
endparamscope(void)
{
+ queue_signals();
locallevel--;
/* This pops anything from a higher locallevel */
saveandpophiststack(0, HFILE_USE_OPTIONS);
scanhashtable(paramtab, 0, 0, 0, scanendscope, 0);
+ unqueue_signals();
}
/**/