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
_______________________________________________
gpm mailing list
gpm@lists.linux.it
http://lists.linux.it/listinfo/gpm

