[gpm] [patch] make sure changing gid/uid actually works

Mike Frysinger vapier@gentoo.org
Wed May 4 04:40:27 CEST 2005


here's a small patch to make sure setgid/setuid actually worked

--- src/prog/gpm-root.y
+++ src/prog/gpm-root.y
@@ -433,9 +433,10 @@
 /*====================================================================*/
 void f__fix(struct passwd *pass)
 {
-   setgid(pass->pw_gid);
-   initgroups(pass->pw_name, pass->pw_gid);
-   setuid(pass->pw_uid);
+   if (setgid(pass->pw_gid) < 0 ||
+       initgroups(pass->pw_name, pass->pw_gid) < 0 ||
+       setuid(pass->pw_uid) < 0)
+   exit(1);
    setenv("HOME",    pass->pw_dir, 1);
    setenv("LOGNAME", pass->pw_name,1);
    setenv("USER",    pass->pw_name,1);

-mike


More information about the gpm mailing list