From 25f2239412b0431d3ff9762ce802c97f4a4b81e1 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Thu, 12 Jun 2014 14:28:18 +0200 Subject: [PATCH] Allow sdktool to run in an elevated context This fixes an issue with installation on Mac: We run sdktool with 'elevated' rights if we e.g. install in a global directory, forcing the effective user id to be 0. However, since Qt 5.3.0 QCoreApplication aborts if geteuid() != getuid(). Change-Id: I678f405fc0cb31dbf9c0487f674bb8dbe5e2e95e Reviewed-by: Tobias Hunger --- src/tools/sdktool/main.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/tools/sdktool/main.cpp b/src/tools/sdktool/main.cpp index 92d93268464..5f6e62682d0 100644 --- a/src/tools/sdktool/main.cpp +++ b/src/tools/sdktool/main.cpp @@ -159,6 +159,15 @@ int parseArguments(const QStringList &args, Settings *s, const QList= QT_VERSION_CHECK(5, 3, 0)) + // Since 5.3, Qt by default aborts if the effective user id is different than the + // real user id. However, in IFW on Mac we use setuid to 'elevate' + // permissions if needed. This is considered safe because the user has to provide + // the credentials manually - an attack would require at least access to the + // user's environment. + QCoreApplication::setSetuidAllowed(true); +#endif + QCoreApplication a(argc, argv); Settings settings;