summaryrefslogtreecommitdiffstats
path: root/generic/tclPipe.c
diff options
context:
space:
mode:
authorf.bonnet <f.bonnet>2017-08-27 15:25:57 (GMT)
committerf.bonnet <f.bonnet>2017-08-27 15:25:57 (GMT)
commit68b53cfb2571faea3e86f728b3a07222ea9143d0 (patch)
treed171a8c1e48d15a604be9de942d988bd21e1feff /generic/tclPipe.c
parent935e991786520c81b01c7c2992568703d3d0746f (diff)
downloadtcl-68b53cfb2571faea3e86f728b3a07222ea9143d0.zip
tcl-68b53cfb2571faea3e86f728b3a07222ea9143d0.tar.gz
tcl-68b53cfb2571faea3e86f728b3a07222ea9143d0.tar.bz2
Fixed reference counting issue with objects returned by WaitProcessStatus
Diffstat (limited to 'generic/tclPipe.c')
-rw-r--r--generic/tclPipe.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/generic/tclPipe.c b/generic/tclPipe.c
index d20d8eb..fa5c55d 100644
--- a/generic/tclPipe.c
+++ b/generic/tclPipe.c
@@ -290,6 +290,8 @@ TclCleanupChildren(
Tcl_SetObjErrorCode(interp, error);
Tcl_SetObjResult(interp, msg);
}
+ Tcl_DecrRefCount(error);
+ Tcl_DecrRefCount(msg);
continue;
}
@@ -305,7 +307,6 @@ TclCleanupChildren(
if (waitStatus == TCL_PROCESS_EXITED) {
if (interp != NULL) {
Tcl_SetObjErrorCode(interp, error);
- Tcl_DecrRefCount(msg);
}
abnormalExit = 1;
} else if (interp != NULL) {
@@ -313,6 +314,8 @@ TclCleanupChildren(
Tcl_SetObjResult(interp, msg);
}
}
+ Tcl_DecrRefCount(error);
+ Tcl_DecrRefCount(msg);
}
/*