summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormig <mig>2012-12-13 13:37:19 (GMT)
committermig <mig>2012-12-13 13:37:19 (GMT)
commit86ced50657a467a7e29470be90d1d13061b84a2d (patch)
tree95c002e07c7e884c18be2eddb392ecb6023a2b63
parent72da5b18e878aeb9744fa4b746b646eb98e750cd (diff)
downloadtcl-86ced50657a467a7e29470be90d1d13061b84a2d.zip
tcl-86ced50657a467a7e29470be90d1d13061b84a2d.tar.gz
tcl-86ced50657a467a7e29470be90d1d13061b84a2d.tar.bz2
Fix for [Bug 3595576], found by andrewsh
-rw-r--r--ChangeLog7
-rw-r--r--generic/tclCmdAH.c3
2 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 87f0260..13fcaf8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2012-11-13 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclCmdAH.c (CatchObjCmdCallback): do not decrRefCount
+ the newValuePtr sent to Tcl_ObjSetVar2: TOSV2 is 'fire and
+ forget', it decrs on its own. Fix for [Bug 3595576], found by
+ andrewsh.
+
2012-12-13 Jan Nijtmans <nijtmans@users.sf.net>
* generic/tcl.h: Fix Tcl_DecrRefCount macro such that it
diff --git a/generic/tclCmdAH.c b/generic/tclCmdAH.c
index 14951e4..133a61b 100644
--- a/generic/tclCmdAH.c
+++ b/generic/tclCmdAH.c
@@ -361,7 +361,8 @@ CatchObjCmdCallback(
if (NULL == Tcl_ObjSetVar2(interp, optionVarNamePtr, NULL,
options, TCL_LEAVE_ERR_MSG)) {
- Tcl_DecrRefCount(options);
+ /* Do not decrRefCount 'options', it was already done by
+ * Tcl_ObjSetVar2 */
return TCL_ERROR;
}
}