about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/signals.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index f264e0c5a..9ac384183 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2000-06-14  Peter Stephenson  <pws@cambridgesiliconradio.com>
+
+	* 11895: Src/signals.c: exit traps weren't cleared from the
+	list properly, resulting in memory management problems.
+
 2000-06-14  Sven Wischnowsky  <wischnow@zsh.org>
 
 	* 11885: Src/parse.c: nix kaboom with `time time'
diff --git a/Src/signals.c b/Src/signals.c
index 264b68a53..543d4ab9b 100644
--- a/Src/signals.c
+++ b/Src/signals.c
@@ -837,9 +837,9 @@ endtrapscope(void)
 	    exitfn = removehashnode(shfunctab, "TRAPEXIT");
 	} else {
 	    exitfn = sigfuncs[SIGEXIT];
-	    sigfuncs[SIGEXIT] = NULL;
 	}
-	unsettrap(SIGEXIT);
+	sigfuncs[SIGEXIT] = NULL;
+	sigtrapped[SIGEXIT] = 0;
     }
 
     if (savetraps) {