You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kwrited/SOURCES/kwrited-call-setgroups.patch

37 lines
902 B

12 months ago
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