summaryrefslogtreecommitdiffstats
path: root/src/corelib/io
diff options
context:
space:
mode:
authorDimitrios Apostolou <jimis@qt.io>2020-09-10 19:27:44 +0200
committerDimitrios Apostolou <jimis@qt.io>2020-10-29 19:03:25 +0200
commit743ffcbc822cc46c2b2d7cde6b6a3eca303d5c60 (patch)
treeac012d3113636bce3f43b16743de482e5274a101 /src/corelib/io
parent4d269b456146fb7e39916db0d3a8b40f9023ffd9 (diff)
Avoid doing kill(-1) in QProcess destructor
It can happen under unspecified conditions, see relevant ticket. Task-number: QTBUG-86285 Pick-to: 5.15 Change-Id: I1f77bf0061a0faaa60283bb93fc3d82031247d54 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/io')
-rw-r--r--src/corelib/io/qprocess_unix.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/corelib/io/qprocess_unix.cpp b/src/corelib/io/qprocess_unix.cpp
index 2c2f376028..1111e6e607 100644
--- a/src/corelib/io/qprocess_unix.cpp
+++ b/src/corelib/io/qprocess_unix.cpp
@@ -504,6 +504,7 @@ void QProcessPrivate::startProcess()
}
pid = qint64(childPid);
+ Q_ASSERT(pid > 0);
// parent
// close the ends we don't use and make all pipes non-blocking
@@ -691,18 +692,18 @@ bool QProcessPrivate::writeToStdin()
void QProcessPrivate::terminateProcess()
{
#if defined (QPROCESS_DEBUG)
- qDebug("QProcessPrivate::terminateProcess()");
+ qDebug("QProcessPrivate::terminateProcess() pid=%jd", intmax_t(pid));
#endif
- if (pid)
+ if (pid > 0)
::kill(pid_t(pid), SIGTERM);
}
void QProcessPrivate::killProcess()
{
#if defined (QPROCESS_DEBUG)
- qDebug("QProcessPrivate::killProcess()");
+ qDebug("QProcessPrivate::killProcess() pid=%jd", intmax_t(pid));
#endif
- if (pid)
+ if (pid > 0)
::kill(pid_t(pid), SIGKILL);
}