From c928dd4059aa6908a40bcb9e7ce94c163e6abfdf Mon Sep 17 00:00:00 2001 From: Miguel Sofer Date: Fri, 8 May 2009 02:23:51 +0000 Subject: * generic/tclObj.c (Tcl_GetCommandFromObj): fix for bug [2785893], insure that a command in a deleted namespace cannot be found through a cached name. --- ChangeLog | 6 ++++++ generic/tclObj.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index cd5c822..268dca7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-05-07 Miguel Sofer + + * 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 * 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) -- cgit v0.12