about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--Src/signals.c7
2 files changed, 9 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 49bf1b03a..aa9b04c9d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-09-14  Peter Stephenson  <pws@csr.com>
+
+	* 28258: Src/signals.c: bug in 28250 could cause undefined
+	variable resulting in mayhem.
+
 2010-09-13  Peter Stephenson  <pws@csr.com>
 
 	* unposted: NEWS: add POSIX_TRAPS
@@ -13636,5 +13641,5 @@
 
 *****************************************************
 * This is used by the shell to define $ZSH_PATCHLEVEL
-* $Revision: 1.5079 $
+* $Revision: 1.5080 $
 *****************************************************
diff --git a/Src/signals.c b/Src/signals.c
index d107b46d1..456a85300 100644
--- a/Src/signals.c
+++ b/Src/signals.c
@@ -951,7 +951,7 @@ endtrapscope(void)
 {
     LinkNode ln;
     struct savetrap *st;
-    int exittr;
+    int exittr = 0;
     void *exitfn = NULL;
 
     /*
@@ -959,9 +959,8 @@ endtrapscope(void)
      * after all the other traps have been put back.
      * Don't do this inside another trap.
      */
-    if (intrap)
-	exittr = 0;
-    else if (!isset(POSIXTRAPS) && (exittr = sigtrapped[SIGEXIT])) {
+    if (!intrap &&
+	!isset(POSIXTRAPS) && (exittr = sigtrapped[SIGEXIT])) {
 	if (exittr & ZSIG_FUNC) {
 	    exitfn = removehashnode(shfunctab, "TRAPEXIT");
 	} else {