diff options
| author | dgp@users.sourceforge.net <dgp> | 2014-07-11 15:44:42 (GMT) |
|---|---|---|
| committer | dgp@users.sourceforge.net <dgp> | 2014-07-11 15:44:42 (GMT) |
| commit | c535ea53860a267efab26145fd823e79f967d607 (patch) | |
| tree | 16d545ca3bb0424b8498e634033c1f7482ed0618 /generic/tclExecute.c | |
| parent | 0f4cd3b0d57d05978274888d50370020516b30fc (diff) | |
| download | tcl-c535ea53860a267efab26145fd823e79f967d607.zip tcl-c535ea53860a267efab26145fd823e79f967d607.tar.gz tcl-c535ea53860a267efab26145fd823e79f967d607.tar.bz2 | |
[9b352768e6] Plug memleak in INST_DICT_FIRST.
Diffstat (limited to 'generic/tclExecute.c')
| -rw-r--r-- | generic/tclExecute.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index d8c5935..2f9aac3 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -7474,6 +7474,14 @@ TEBCresume( searchPtr = ckalloc(sizeof(Tcl_DictSearch)); if (Tcl_DictObjFirst(interp, dictPtr, searchPtr, &keyPtr, &valuePtr, &done) != TCL_OK) { + + /* + * dictPtr is no longer on the stack, and we're not + * moving it into the intrep of an iterator. We need + * to drop the refcount [Tcl Bug 9b352768e6]. + */ + + Tcl_DecrRefCount(dictPtr); ckfree(searchPtr); TRACE_ERROR(interp); goto gotError; |
