summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2014-07-12 16:15:22 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2014-07-12 16:15:22 (GMT)
commit985b5f8a7463d8ef8400d49bceb87b402ed70e59 (patch)
tree488c380d0ec7f4f0e06a4eda59cfddabf2bcc0e3 /generic/tclExecute.c
parent7bea42569d8c2ccb8584155f706392d5812ec428 (diff)
parent74d71bafde63ca49cecadc990df7b3a2d7797849 (diff)
downloadtcl-bug_d5ddbc7f49.zip
tcl-bug_d5ddbc7f49.tar.gz
tcl-bug_d5ddbc7f49.tar.bz2
merge trunkbug_d5ddbc7f49
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r--generic/tclExecute.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index d8c5935..2f9aac3 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -7474,6 +7474,14 @@ TEBCresume(
searchPtr = ckalloc(sizeof(Tcl_DictSearch));
if (Tcl_DictObjFirst(interp, dictPtr, searchPtr, &keyPtr,
&valuePtr, &done) != TCL_OK) {
+
+ /*
+ * dictPtr is no longer on the stack, and we're not
+ * moving it into the intrep of an iterator. We need
+ * to drop the refcount [Tcl Bug 9b352768e6].
+ */
+
+ Tcl_DecrRefCount(dictPtr);
ckfree(searchPtr);
TRACE_ERROR(interp);
goto gotError;