Annotation of /trunk/xdm/patches/xdm-1.0.1-setuid.patch
Parent Directory | Revision Log
Revision 153 -
(hide annotations)
(download)
Tue May 8 20:52:56 2007 UTC (17 years, 4 months ago) by niro
File size: 1364 byte(s)
Tue May 8 20:52:56 2007 UTC (17 years, 4 months ago) by niro
File size: 1364 byte(s)
-import
1 | niro | 153 | Index: session.c |
2 | =================================================================== | ||
3 | RCS file: /cvs/xorg/app/xdm/session.c,v | ||
4 | retrieving revision 1.7 | ||
5 | diff -u -r1.7 session.c | ||
6 | --- session.c 3 Jun 2006 00:05:24 -0000 1.7 | ||
7 | +++ session.c 19 Jun 2006 21:30:50 -0000 | ||
8 | @@ -492,8 +492,14 @@ | ||
9 | else | ||
10 | ResetServer (d); | ||
11 | if (removeAuth) { | ||
12 | - setgid (verify.gid); | ||
13 | - setuid (verify.uid); | ||
14 | + if (setgid (verify.gid) == -1) { | ||
15 | + LogError( "SessionExit: setgid: %s\n", strerror(errno)); | ||
16 | + exit(status); | ||
17 | + } | ||
18 | + if (setuid (verify.uid) == -1) { | ||
19 | + LogError( "SessionExit: setuid: %s\n", strerror(errno)); | ||
20 | + exit(status); | ||
21 | + } | ||
22 | RemoveUserAuthorization (d, &verify); | ||
23 | #if defined(K5AUTH) && !defined(USE_PAM) /* PAM modules should handle this */ | ||
24 | /* do like "kdestroy" program */ | ||
25 | Index: xdmshell.c | ||
26 | =================================================================== | ||
27 | RCS file: /cvs/xorg/app/xdm/xdmshell.c,v | ||
28 | retrieving revision 1.3 | ||
29 | diff -u -r1.3 xdmshell.c | ||
30 | --- xdmshell.c 14 Jul 2005 22:58:25 -0000 1.3 | ||
31 | +++ xdmshell.c 19 Jun 2006 21:30:50 -0000 | ||
32 | @@ -183,7 +183,11 @@ | ||
33 | #endif | ||
34 | |||
35 | /* make xdm run in a non-setuid environment */ | ||
36 | - setuid (geteuid()); | ||
37 | + if (setuid (geteuid()) == -1) { | ||
38 | + fprintf(stderr, "%s: cannot setuid (error %d, %s)\r\n", | ||
39 | + ProgramName, errno, strerror(errno)); | ||
40 | + exit(1); | ||
41 | + } | ||
42 | |||
43 | /* | ||
44 | * exec /usr/bin/X11/xdm -nodaemon -udpPort 0 |