From 3f2525724acdd550fd3b577eefd493a61d49e3b8 Mon Sep 17 00:00:00 2001 From: Miguel Sofer Date: Thu, 18 Nov 2010 00:35:18 +0000 Subject: * generic/tclNamesp.c: fix leak due to bad looping construct, [Bug 3111059] --- ChangeLog | 5 +++++ generic/tclNamesp.c | 8 +++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index c9ecc92..f32e04a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-11-18 Miguel Sofer + + * generic/tclNamesp.c: fix leak due to bad looping construct, + [Bug 3111059] + 2010-11-17 Jan Nijtmans * win/tcl.m4: [FRQ 491789]: "setargv() doesn't support a diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c index 89e8a21..e6bed55 100644 --- a/generic/tclNamesp.c +++ b/generic/tclNamesp.c @@ -22,7 +22,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclNamesp.c,v 1.214 2010/10/20 20:52:28 ferrieux Exp $ + * RCS: @(#) $Id: tclNamesp.c,v 1.215 2010/11/18 00:35:18 msofer Exp $ */ #include "tclInt.h" @@ -881,14 +881,12 @@ Tcl_DeleteNamespace( */ for (entryPtr = Tcl_FirstHashEntry(&nsPtr->cmdTable, &search); - entryPtr != NULL;) { + entryPtr != NULL; + entryPtr = Tcl_FirstHashEntry(&nsPtr->cmdTable, &search)) { cmdPtr = (Command *) Tcl_GetHashValue(entryPtr); if (cmdPtr->nreProc == NRInterpCoroutine) { Tcl_DeleteCommandFromToken((Tcl_Interp *) iPtr, (Tcl_Command) cmdPtr); - entryPtr = Tcl_FirstHashEntry(&nsPtr->cmdTable, &search); - } else { - entryPtr = entryPtr->nextPtr; } } -- cgit v0.12