diff options
-rw-r--r-- | src/sdk/main.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/sdk/main.cpp b/src/sdk/main.cpp index a35f1a95a..cda9c932a 100644 --- a/src/sdk/main.cpp +++ b/src/sdk/main.cpp @@ -50,6 +50,11 @@ #include <iostream> +#if defined(Q_OS_OSX) +# include <unistd.h> +# include <sys/types.h> +#endif + #define QUOTE_(x) #x #define QUOTE(x) QUOTE_(x) #define VERSION "IFW Version: \"" QUOTE(IFW_VERSION_STR) "\"" @@ -144,6 +149,14 @@ int main(int argc, char *argv[]) return EXIT_FAILURE; } +#if defined(Q_OS_OSX) + // make sure effective == real user id. + uid_t realUserId = getuid(); + uid_t effectiveUserId = geteuid(); + if (realUserId != effectiveUserId) + setreuid(effectiveUserId, -1); +#endif + QInstaller::RemoteServer *server = new QInstaller::RemoteServer; QObject::connect(server, SIGNAL(destroyed()), &app, SLOT(quit())); server->init(socketName, key, (production ? QInstaller::Protocol::Mode::Production |