From 549db7d3318d8c6479d180fc249ea9b0d6e7b27c Mon Sep 17 00:00:00 2001 From: LostDragonist Date: Fri, 21 Dec 2018 17:38:07 -0600 Subject: Escape quotes in arguments when elevating MO --- src/spawn.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/spawn.cpp') diff --git a/src/spawn.cpp b/src/spawn.cpp index f92387d5..6bb34aea 100644 --- a/src/spawn.cpp +++ b/src/spawn.cpp @@ -159,8 +159,9 @@ HANDLE startBinary(const QFileInfo &binary, "(you will be asked if you want to allow ModOrganizer.exe to make changes to the system)").arg( QDir::toNativeSeparators(binary.absoluteFilePath())), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { + std::wstring parameters = ToWString("\"" + QDir::toNativeSeparators(binary.absoluteFilePath()) + "\" " + QString(arguments).replace("\"", "\\\"")); ::ShellExecuteW(nullptr, L"runas", ToWString(QCoreApplication::applicationFilePath()).c_str(), - (std::wstring(L"\"") + binaryName + L"\" " + ToWString(arguments)).c_str(), currentDirectoryName.c_str(), SW_SHOWNORMAL); + parameters.c_str(), currentDirectoryName.c_str(), SW_SHOWNORMAL); return INVALID_HANDLE_VALUE; } else { return INVALID_HANDLE_VALUE; -- cgit v1.3.1