diff options
| author | Miguel Sofer <miguel.sofer@gmail.com> | 2010-11-18 00:44:39 (GMT) |
|---|---|---|
| committer | Miguel Sofer <miguel.sofer@gmail.com> | 2010-11-18 00:44:39 (GMT) |
| commit | 01e685e3815a6439285e12cc3751858a06de47b5 (patch) | |
| tree | 8ed48669bdf57a8b7d4a32779395027d41bbce71 | |
| parent | 098783b9dc2da7260a24beef71cd3e1b821b16f5 (diff) | |
| download | tcl-01e685e3815a6439285e12cc3751858a06de47b5.zip tcl-01e685e3815a6439285e12cc3751858a06de47b5.tar.gz tcl-01e685e3815a6439285e12cc3751858a06de47b5.tar.bz2 | |
* generic/tclNamesp.c: fix leak due to bad looping construct,
[Bug 3111059]
(Correct fix this time around)
| -rw-r--r-- | generic/tclNamesp.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c index e6bed55..baed244 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.215 2010/11/18 00:35:18 msofer Exp $ + * RCS: @(#) $Id: tclNamesp.c,v 1.216 2010/11/18 00:44:39 msofer Exp $ */ #include "tclInt.h" @@ -881,12 +881,14 @@ Tcl_DeleteNamespace( */ for (entryPtr = Tcl_FirstHashEntry(&nsPtr->cmdTable, &search); - entryPtr != NULL; - entryPtr = Tcl_FirstHashEntry(&nsPtr->cmdTable, &search)) { + entryPtr != NULL;) { 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 = Tcl_NextHashEntry(&search); } } |
