Blob Blame History Raw
diff --git a/kwrited.cpp b/kwrited.cpp
index 2b73e36..27b309e 100644
--- a/kwrited.cpp
+++ b/kwrited.cpp
@@ -35,6 +35,7 @@
 # include <signal.h>
 # include <sys/types.h>
 # include <unistd.h>
+# include <grp.h>
 #else
 # include <kpluginfactory.h>
 # include <kpluginloader.h>
@@ -61,6 +62,7 @@ int main(int argc, char **argv)
     //drop elevated privileges temporarily
     original_euid = geteuid();
     original_egid = getegid();
+    setgroups(0, 0); // Remove any extraneous groups
     seteuid(getuid());
     setegid(getgid());
 
@@ -119,6 +121,7 @@ KWrited::KWrited() : QObject()
   
 #if defined(BUILD_AS_EXECUTABLE)
   //drop privileges again
+  setgroups(0, 0);
   seteuid(getuid());
   setegid(getgid());
 #endif
@@ -139,6 +142,7 @@ KWrited::~KWrited()
 
 #if defined(BUILD_AS_EXECUTABLE)
   //drop privileges again
+  setgroups(0, 0);
   seteuid(getuid());
   setegid(getgid());
 #endif