diff options
| author | sebres <sebres@users.sourceforge.net> | 2024-05-30 18:36:29 (GMT) |
|---|---|---|
| committer | sebres <sebres@users.sourceforge.net> | 2024-05-30 18:36:29 (GMT) |
| commit | c6cbb0ff4a7bb42711f2b21953de289903ffa8b4 (patch) | |
| tree | 844db52baf0c81c5f11c7b1e373bb742595001f6 /generic/tclBasic.c | |
| parent | e524b914e2f249d373a8822101fc19275fe8f7a3 (diff) | |
| download | tcl-c6cbb0ff4a7bb42711f2b21953de289903ffa8b4.zip tcl-c6cbb0ff4a7bb42711f2b21953de289903ffa8b4.tar.gz tcl-c6cbb0ff4a7bb42711f2b21953de289903ffa8b4.tar.bz2 | |
closes [34870ab5756911d1]: no double free if Tcl_DeleteAssocData gets called in deleteProc (if interp gets deleted); amend to [ec7e558c34856b07], reverts [b95643fa3926f2e3].
Diffstat (limited to 'generic/tclBasic.c')
| -rw-r--r-- | generic/tclBasic.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c index 2514364..4cf24e4 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -2000,10 +2000,10 @@ DeleteInterpProc( hPtr != NULL; hPtr = Tcl_FirstHashEntry(hTablePtr, &search)) { dPtr = (AssocData *)Tcl_GetHashValue(hPtr); + Tcl_DeleteHashEntry(hPtr); if (dPtr->proc != NULL) { dPtr->proc(dPtr->clientData, interp); } - Tcl_DeleteHashEntry(hPtr); ckfree(dPtr); } Tcl_DeleteHashTable(hTablePtr); |
