forked from qt-creator/qt-creator
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 <tobias.hunger@digia.com>
This commit is contained in:
@@ -159,6 +159,15 @@ int parseArguments(const QStringList &args, Settings *s, const QList<Operation *
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
#if (QT_VERSION >= 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);
|
QCoreApplication a(argc, argv);
|
||||||
|
|
||||||
Settings settings;
|
Settings settings;
|
||||||
|
Reference in New Issue
Block a user