From e1e0862990dbe00462f7faa02845a640a3d84155 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Thu, 5 Mar 2020 14:23:48 +0100 Subject: Fix deprecation warning in QGenericUnixServices Do not use the deprecated method QProcess::start(QString) anymore. Change-Id: I09eae2c8a1dbb53fd2de004e5030da9bb3c07b14 Reviewed-by: Volker Hilsheimer --- src/platformsupport/services/genericunix/qgenericunixservices.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/platformsupport/services') diff --git a/src/platformsupport/services/genericunix/qgenericunixservices.cpp b/src/platformsupport/services/genericunix/qgenericunixservices.cpp index 734bdcaf75..8e9923e208 100644 --- a/src/platformsupport/services/genericunix/qgenericunixservices.cpp +++ b/src/platformsupport/services/genericunix/qgenericunixservices.cpp @@ -166,7 +166,8 @@ static inline bool launch(const QString &launcher, const QUrl &url) #if !QT_CONFIG(process) const bool ok = ::system(qPrintable(command + QLatin1String(" &"))); #else - const bool ok = QProcess::startDetached(command); + QStringList args = QProcess::splitCommand(command); + const bool ok = !args.isEmpty() && QProcess::startDetached(args.takeFirst(), args); #endif if (!ok) qWarning("Launch failed (%s)", qPrintable(command)); -- cgit v1.2.3 From 2de3bfced35ae060acffc06e66e18279de6f5099 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 6 Mar 2020 09:44:05 +0100 Subject: Fix UB in QProcess deprecation warning fixes The commits e1e08629 and 66e905b1 introduced undefined behavior. Fix this by assigning the result of takeFirst to a temporary. Change-Id: I9e29412cf632d4836b95d47e12d8c07ab0645fbb Reviewed-by: Volker Hilsheimer --- src/platformsupport/services/genericunix/qgenericunixservices.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/platformsupport/services') diff --git a/src/platformsupport/services/genericunix/qgenericunixservices.cpp b/src/platformsupport/services/genericunix/qgenericunixservices.cpp index 8e9923e208..b583d636c0 100644 --- a/src/platformsupport/services/genericunix/qgenericunixservices.cpp +++ b/src/platformsupport/services/genericunix/qgenericunixservices.cpp @@ -167,7 +167,11 @@ static inline bool launch(const QString &launcher, const QUrl &url) const bool ok = ::system(qPrintable(command + QLatin1String(" &"))); #else QStringList args = QProcess::splitCommand(command); - const bool ok = !args.isEmpty() && QProcess::startDetached(args.takeFirst(), args); + bool ok = false; + if (!args.isEmpty()) { + QString program = args.takeFirst(); + ok = QProcess::startDetached(program, args); + } #endif if (!ok) qWarning("Launch failed (%s)", qPrintable(command)); -- cgit v1.2.3