File tree Expand file tree Collapse file tree 1 file changed +9
-3
lines changed
Expand file tree Collapse file tree 1 file changed +9
-3
lines changed Original file line number Diff line number Diff line change @@ -674,7 +674,9 @@ TpoolCancelObjCmd(
674674 tpoolPtr -> workTail = rPtr -> prevPtr ;
675675 }
676676 SetResult (NULL , rPtr ); /* Just to free the result */
677- ckfree (rPtr -> script );
677+ if (rPtr -> script ) {
678+ ckfree (rPtr -> script );
679+ }
678680 ckfree ((char * )rPtr );
679681 Tcl_ListObjAppendElement (interp , doneList , wObjv [ii ]);
680682 break ;
@@ -1239,6 +1241,7 @@ TpoolWorker(
12391241 Tcl_MutexUnlock (& tpoolPtr -> mutex );
12401242 TpoolEval (interp , rPtr -> script , rPtr -> scriptLen , rPtr );
12411243 ckfree (rPtr -> script );
1244+ rPtr -> script = NULL ;
12421245 Tcl_MutexLock (& tpoolPtr -> mutex );
12431246 if (!rPtr -> detached ) {
12441247 int isNew ;
@@ -1715,8 +1718,11 @@ TpoolRelease(
17151718 * Cleanup jobs posted but never completed.
17161719 */
17171720
1718- for (rPtr = tpoolPtr -> workHead ; rPtr ; rPtr = rPtr -> nextPtr ) {
1719- ckfree (rPtr -> script );
1721+ for (rPtr = tpoolPtr -> workHead ; rPtr ; rPtr = tpoolPtr -> workHead ) {
1722+ tpoolPtr -> workHead = rPtr -> nextPtr ;
1723+ if (rPtr -> script ) {
1724+ ckfree (rPtr -> script );
1725+ }
17201726 ckfree ((char * )rPtr );
17211727 }
17221728 Tcl_MutexFinalize (& tpoolPtr -> mutex );
You can’t perform that action at this time.
0 commit comments