From 3b7d51dc804a075af7eef26f9b415f05187c66b4 Mon Sep 17 00:00:00 2001 From: Piyush Aggarwal Date: Sun, 9 May 2021 05:11:41 +0530 Subject: [PATCH] runcommand: avoid using cmd to allow better handling of quoted arguments --- plugins/runcommand/runcommandplugin.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/plugins/runcommand/runcommandplugin.cpp b/plugins/runcommand/runcommandplugin.cpp index 84b336ad5..60a715f0f 100644 --- a/plugins/runcommand/runcommandplugin.cpp +++ b/plugins/runcommand/runcommandplugin.cpp @@ -29,16 +29,9 @@ #define PACKET_TYPE_RUNCOMMAND QStringLiteral("kdeconnect.runcommand") -#ifdef Q_OS_WIN -#define COMMAND "cmd" -#define ARGS "/c" - -#else #define COMMAND "/bin/sh" #define ARGS "-c" -#endif - K_PLUGIN_CLASS_WITH_JSON(RunCommandPlugin, "kdeconnect_runcommand.json") RunCommandPlugin::RunCommandPlugin(QObject* parent, const QVariantList& args) @@ -68,7 +61,11 @@ bool RunCommandPlugin::receivePacket(const NetworkPacket& np) } const QJsonObject commandJson = value.toObject(); qCInfo(KDECONNECT_PLUGIN_RUNCOMMAND) << "Running:" << COMMAND << ARGS << commandJson[QStringLiteral("command")].toString(); +#ifdef Q_OS_WIN + QProcess::startDetached(commandJson[QStringLiteral("command")].toString()); +#else QProcess::startDetached(QStringLiteral(COMMAND), QStringList()<< QStringLiteral(ARGS) << commandJson[QStringLiteral("command")].toString()); +#endif return true; } else if (np.has(QStringLiteral("setup"))) { Daemon::instance()->openConfiguration(device()->id(), QStringLiteral("kdeconnect_runcommand"));