Applied Mike Frysinger [Tue, May 03, 2005 at 10:40:27PM -0400]: > 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@xxxxxxxxxxxxxx > http://lists.linux.it/listinfo/gpm > -- Latest project: cconfig (http://nico.schotteli.us/papers/linux/cconfig/) Open Source nutures open minds and free, creative developers.
Attachment:
signature.asc
Description: Digital signature
_______________________________________________ gpm mailing list gpm@xxxxxxxxxxxxxx http://lists.linux.it/listinfo/gpm