summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2012-10-14 19:00:39 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2012-10-14 19:00:39 (GMT)
commitbd2bdd6f8a4571b486ba30fbf686af3eb82ee6bc (patch)
treee4db6f972727d7f790b1241cb383041f47d5b0dc
parent787d71bc6d8d517220c6b301345bf816bcecab2f (diff)
downloadtcl-bd2bdd6f8a4571b486ba30fbf686af3eb82ee6bc.zip
tcl-bd2bdd6f8a4571b486ba30fbf686af3eb82ee6bc.tar.gz
tcl-bd2bdd6f8a4571b486ba30fbf686af3eb82ee6bc.tar.bz2
Bug 357650: Better fix, which helps for all Tcl_DictObjGet() calls in Tcl's source code.
-rw-r--r--ChangeLog6
-rw-r--r--generic/tclDictObj.c1
-rw-r--r--generic/tclEvent.c2
3 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ba075d7..3793786 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-10-14 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclDictObj.c: [Bug 3576509]: tcl::Bgerror crashes with invalid
+ * generic/tclEvent.c: arguments. Better fix, which helps for all
+ Tcl_DictObjGet() calls in Tcl's source code.
+
2012-10-13 Jan Nijtmans <nijtmans@users.sf.net>
* generic/tclEvent.c: [Bug 3576509]: tcl::Bgerror crashes with invalid
diff --git a/generic/tclDictObj.c b/generic/tclDictObj.c
index 8f3ce3a..b066d46 100644
--- a/generic/tclDictObj.c
+++ b/generic/tclDictObj.c
@@ -941,6 +941,7 @@ Tcl_DictObjGet(
if (dictPtr->typePtr != &tclDictType) {
int result = SetDictFromAny(interp, dictPtr);
if (result != TCL_OK) {
+ *valuePtrPtr = NULL;
return result;
}
}
diff --git a/generic/tclEvent.c b/generic/tclEvent.c
index 1d72a0a..7daa7bb 100644
--- a/generic/tclEvent.c
+++ b/generic/tclEvent.c
@@ -309,7 +309,7 @@ TclDefaultBgErrorHandlerObjCmd(
int objc, /* Number of arguments. */
Tcl_Obj *CONST objv[]) /* Argument objects. */
{
- Tcl_Obj *keyPtr, *valuePtr = NULL;
+ Tcl_Obj *keyPtr, *valuePtr;
Tcl_Obj *tempObjv[2];
int code, level;
Tcl_InterpState saved;