diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2021-02-18 09:36:56 -0800 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2021-02-21 18:46:28 -0800 |
commit | 73a04edce151b21ea5d07494603c0317716e99d9 (patch) | |
tree | 145b501dbb9a9ad5eb03e73c595b7066bdd47769 /src/corelib/io/qprocess_win.cpp | |
parent | 86ebdc07dfd8c4df09b21ecc528dcae8d978f7e1 (diff) |
QProcess::startDetached: set the error condition on failure to start
And set *pid to -1.
[ChangeLog][QtCore][QProcess] If a startDetached() fails to start the
target application, the QProcess object should now have a proper error
string in errorString().
Pick-to: 6.1
Change-Id: Ic90d8429a0eb4837971dfffd1664e825ffcb923e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Diffstat (limited to 'src/corelib/io/qprocess_win.cpp')
-rw-r--r-- | src/corelib/io/qprocess_win.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/corelib/io/qprocess_win.cpp b/src/corelib/io/qprocess_win.cpp index dc8c50127d..0088284d2d 100644 --- a/src/corelib/io/qprocess_win.cpp +++ b/src/corelib/io/qprocess_win.cpp @@ -869,6 +869,7 @@ bool QProcessPrivate::startDetached(qint64 *pid) static const DWORD errorElevationRequired = 740; if (!openChannelsForDetached()) { + // openChannel sets the error string closeChannel(&stdinChannel); closeChannel(&stdoutChannel); closeChannel(&stderrChannel); @@ -913,6 +914,11 @@ bool QProcessPrivate::startDetached(qint64 *pid) success = startDetachedUacPrompt(program, arguments, nativeArguments, workingDirectory, pid); } + if (!success) { + if (pid) + *pid = -1; + setErrorAndEmit(QProcess::FailedToStart); + } closeChannel(&stdinChannel); closeChannel(&stdoutChannel); |