summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiguel Sofer <miguel.sofer@gmail.com>2009-05-08 02:23:51 (GMT)
committerMiguel Sofer <miguel.sofer@gmail.com>2009-05-08 02:23:51 (GMT)
commitc928dd4059aa6908a40bcb9e7ce94c163e6abfdf (patch)
tree67960c3e040c96616467583df4510e59f029d23d
parent2bfdc581ba334338f7ae48607cd1bf269815f587 (diff)
downloadtcl-c928dd4059aa6908a40bcb9e7ce94c163e6abfdf.zip
tcl-c928dd4059aa6908a40bcb9e7ce94c163e6abfdf.tar.gz
tcl-c928dd4059aa6908a40bcb9e7ce94c163e6abfdf.tar.bz2
* generic/tclObj.c (Tcl_GetCommandFromObj): fix for bug [2785893],
insure that a command in a deleted namespace cannot be found through a cached name.
-rw-r--r--ChangeLog6
-rw-r--r--generic/tclObj.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index cd5c822..268dca7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-05-07 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclObj.c (Tcl_GetCommandFromObj): fix for bug [2785893],
+ insure that a command in a deleted namespace cannot be found
+ through a cached name.
+
2009-05-06 Don Porter <dgp@users.sourceforge.net>
* generic/tclCmdMZ.c: Improve overflow error message from
diff --git a/generic/tclObj.c b/generic/tclObj.c
index 700b112..239865d 100644
--- a/generic/tclObj.c
+++ b/generic/tclObj.c
@@ -13,7 +13,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclObj.c,v 1.139.2.1 2008/03/31 17:21:15 dgp Exp $
+ * RCS: @(#) $Id: tclObj.c,v 1.139.2.2 2009/05/08 02:23:52 msofer Exp $
*/
#include "tclInt.h"
@@ -3526,6 +3526,7 @@ Tcl_GetCommandFromObj(
|| (cmdPtr = resPtr->cmdPtr, cmdPtr->cmdEpoch != resPtr->cmdEpoch)
|| (interp != cmdPtr->nsPtr->interp)
|| (cmdPtr->flags & CMD_IS_DELETED)
+ || (cmdPtr->nsPtr->flags & NS_DYING)
|| ((resPtr->refNsPtr != NULL) &&
(((refNsPtr = (Namespace *) TclGetCurrentNamespace(interp))
!= resPtr->refNsPtr)