1 Index: xc/config/util/chownxterm.c
2 ===================================================================
3 RCS file: /cvs/xorg/xc/config/util/chownxterm.c,v
4 retrieving revision 1.1.1.1
5 diff -u -r1.1.1.1 chownxterm.c
6 --- xc/config/util/chownxterm.c 14 Nov 2003 16:48:20 -0000 1.1.1.1
7 +++ xc/config/util/chownxterm.c 5 Jun 2006 10:35:10 -0000
14 + if (setgid(getgid()) == -1)
16 + if (setuid(getuid()) == -1)
18 printf("chown-xterm makes %s suid root\n", XTERM_PATH);
19 printf("This is necessary on Ultrix for /dev/tty operation.\n");
22 void print_error(err_string)
27 + if (setgid(getgid()) == -1)
29 + if (setuid(getuid()) == -1)
31 fprintf(stderr, "%s: \"%s\"", prog_name, err_string);
34 Index: xc/lib/X11/lcFile.c
35 ===================================================================
36 RCS file: /cvs/xorg/xc/lib/X11/lcFile.c,v
37 retrieving revision 1.6
38 diff -u -r1.6 lcFile.c
39 --- xc/lib/X11/lcFile.c 13 May 2005 22:53:44 -0000 1.6
40 +++ xc/lib/X11/lcFile.c 5 Jun 2006 10:35:14 -0000
42 if (seteuid(0) != 0) {
46 + if (seteuid(oldeuid) == -1) {
47 + /* XXX ouch, coudn't get back to original uid
48 + what can we do ??? */
54 Index: xc/lib/xtrans/Xtranslcl.c
55 ===================================================================
56 RCS file: /cvs/xorg/xc/lib/xtrans/Xtranslcl.c,v
57 retrieving revision 1.4
58 diff -u -r1.4 Xtranslcl.c
59 --- xc/lib/xtrans/Xtranslcl.c 8 Nov 2005 06:33:26 -0000 1.4
60 +++ xc/lib/xtrans/Xtranslcl.c 5 Jun 2006 10:35:15 -0000
64 saved_euid = geteuid();
65 - setuid( getuid() ); /** sets the euid to the actual/real uid **/
66 + /** sets the euid to the actual/real uid **/
67 + if (setuid( getuid() ) == -1) {
70 if( chown( slave, saved_euid, -1 ) < 0 ) {
76 waitpid(saved_pid, &exitval, 0);
78 + if (WIFEXITED(exitval) && WEXITSTATUS(exitval) != 0) {
81 + PRMSG(1, "PTSOpenClient: cannot set the owner of %s\n",
85 if (chmod(slave, 0666) < 0) {
88 Index: xc/programs/Xserver/hw/xfree86/common/xf86Init.c
89 ===================================================================
90 RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v
91 retrieving revision 1.29
92 diff -u -r1.29 xf86Init.c
93 --- xc/programs/Xserver/hw/xfree86/common/xf86Init.c 14 Dec 2005 20:12:00 -0000 1.29
94 +++ xc/programs/Xserver/hw/xfree86/common/xf86Init.c 5 Jun 2006 10:35:19 -0000
96 /* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v 3.212 2004/01/27 01:31:45 dawes Exp $ */
97 -/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v 1.29 2005-12-14 20:12:00 ajax Exp $ */
98 +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v 1.29 2005/12/14 20:12:00 ajax Exp $ */
101 * Loosely based on code bearing the following copyright:
102 @@ -1905,7 +1905,11 @@
103 FatalError("xf86RunVtInit: fork failed (%s)\n", strerror(errno));
107 + if (setuid(getuid()) == -1) {
108 + xf86Msg(X_ERROR, "xf86RunVtInit: setuid failed (%s)\n",
112 /* set stdin, stdout to the consoleFd */
113 for (i = 0; i < 2; i++) {
114 if (xf86Info.consoleFd != i) {
115 Index: xc/programs/Xserver/hw/xfree86/os-support/shared/libc_wrapper.c
116 ===================================================================
117 RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/os-support/shared/libc_wrapper.c,v
118 retrieving revision 1.9
119 diff -u -r1.9 libc_wrapper.c
120 --- xc/programs/Xserver/hw/xfree86/os-support/shared/libc_wrapper.c 3 Jul 2005 08:53:48 -0000 1.9
121 +++ xc/programs/Xserver/hw/xfree86/os-support/shared/libc_wrapper.c 5 Jun 2006 10:35:19 -0000
122 @@ -1270,7 +1270,10 @@
123 #ifndef SELF_CONTAINED_WRAPPER
127 + if (setuid(getuid()) == -1) {
128 + ErrorF("xf86Execl: setuid() failed: %s\n", strerror(errno));
131 #if !defined(SELF_CONTAINED_WRAPPER)
132 /* set stdin, stdout to the consoleFD, and leave stderr alone */
133 for (i = 0; i < 2; i++)
134 Index: xc/programs/Xserver/hw/xfree86/parser/write.c
135 ===================================================================
136 RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/parser/write.c,v
137 retrieving revision 1.3
138 diff -u -r1.3 write.c
139 --- xc/programs/Xserver/hw/xfree86/parser/write.c 3 Jul 2005 07:01:37 -0000 1.3
140 +++ xc/programs/Xserver/hw/xfree86/parser/write.c 5 Jun 2006 10:35:19 -0000
146 + if (setuid(getuid() == -1)
147 + FatalError("xf86writeConfigFile(): "
148 + "setuid failed(%s)\n",
150 ret = doWriteConfigFile(filename, cptr);
153 Index: xc/programs/Xserver/os/utils.c
154 ===================================================================
155 RCS file: /cvs/xorg/xc/programs/Xserver/os/utils.c,v
156 retrieving revision 1.21
157 diff -u -r1.21 utils.c
158 --- xc/programs/Xserver/os/utils.c 8 Nov 2005 06:33:30 -0000 1.21
159 +++ xc/programs/Xserver/os/utils.c 5 Jun 2006 10:35:20 -0000
161 -/* $XdotOrg: xc/programs/Xserver/os/utils.c,v 1.21 2005-11-08 06:33:30 jkj Exp $ */
162 +/* $XdotOrg: xc/programs/Xserver/os/utils.c,v 1.21 2005/11/08 06:33:30 jkj Exp $ */
163 /* $Xorg: utils.c,v 1.5 2001/02/09 02:05:24 xorgcvs Exp $ */
166 @@ -1718,8 +1718,10 @@
172 + if (setgid(getgid()) == -1)
174 + if (setuid(getuid()) == -1)
176 execl("/bin/sh", "sh", "-c", command, (char *)NULL);
178 default: /* parent */
179 @@ -1770,8 +1772,10 @@
185 + if (setgid(getgid()) == -1)
187 + if (setuid(getuid()) == -1)
192 @@ -1845,8 +1849,10 @@
198 + if (setgid(getgid()) == -1)
200 + if (setuid(getuid()) == -1)
205 Index: xc/programs/xdm/session.c
206 ===================================================================
207 RCS file: /cvs/xorg/xc/programs/xdm/session.c,v
208 retrieving revision 1.3
209 diff -u -r1.3 session.c
210 --- xc/programs/xdm/session.c 8 Nov 2005 06:33:31 -0000 1.3
211 +++ xc/programs/xdm/session.c 5 Jun 2006 10:35:21 -0000
213 -/* $XdotOrg: xc/programs/xdm/session.c,v 1.3 2005-11-08 06:33:31 jkj Exp $ */
214 +/* $XdotOrg: xc/programs/xdm/session.c,v 1.3 2005/11/08 06:33:31 jkj Exp $ */
215 /* $Xorg: session.c,v 1.8 2001/02/09 02:05:40 xorgcvs Exp $ */
222 - setgid (verify.gid);
223 - setuid (verify.uid);
224 + if (setgid (verify.gid) == -1) {
225 + LogError( "SessionExit: setgid: %s\n", strerror(errno));
228 + if (setuid (verify.uid) == -1) {
229 + LogError( "SessionExit: setuid: %s\n", strerror(errno));
232 RemoveUserAuthorization (d, &verify);
234 /* do like "kdestroy" program */
235 Index: xc/programs/xdm/xdmshell.c
236 ===================================================================
237 RCS file: /cvs/xorg/xc/programs/xdm/xdmshell.c,v
238 retrieving revision 1.3
239 diff -u -r1.3 xdmshell.c
240 --- xc/programs/xdm/xdmshell.c 14 Jul 2005 22:58:25 -0000 1.3
241 +++ xc/programs/xdm/xdmshell.c 5 Jun 2006 10:35:21 -0000
245 /* make xdm run in a non-setuid environment */
246 - setuid (geteuid());
247 + if (setuid (geteuid()) == -1) {
248 + fprintf(stderr, "%s: cannot setuid (error %d, %s)\r\n",
249 + ProgramName, errno, strerror(errno));
254 * exec /usr/bin/X11/xdm -nodaemon -udpPort 0
255 Index: xc/programs/xf86dga/dga.c
256 ===================================================================
257 RCS file: /cvs/xorg/xc/programs/xf86dga/dga.c,v
258 retrieving revision 1.2
260 --- xc/programs/xf86dga/dga.c 23 Apr 2004 19:54:47 -0000 1.2
261 +++ xc/programs/xf86dga/dga.c 5 Jun 2006 10:35:21 -0000
264 #include <X11/extensions/xf86dga.h>
273 /* Give up root privs */
275 + if (setuid(getuid()) == -1) {
276 + fprintf(stderr, "Unable to change uid: %s\n", strerror(errno));
281 XF86DGASetViewPort(dis, DefaultScreen(dis), 0, 0);
282 Index: xc/programs/xinit/xinit.c
283 ===================================================================
284 RCS file: /cvs/xorg/xc/programs/xinit/xinit.c,v
285 retrieving revision 1.4
286 diff -u -r1.4 xinit.c
287 --- xc/programs/xinit/xinit.c 4 Oct 2005 01:27:34 -0000 1.4
288 +++ xc/programs/xinit/xinit.c 5 Jun 2006 10:35:21 -0000
290 /* $Xorg: xinit.c,v 1.5 2001/02/09 02:05:49 xorgcvs Exp $ */
291 -/* $XdotOrg: xc/programs/xinit/xinit.c,v 1.4 2005-10-04 01:27:34 ajax Exp $ */
292 +/* $XdotOrg: xc/programs/xinit/xinit.c,v 1.4 2005/10/04 01:27:34 ajax Exp $ */
297 startClient(char *client[])
299 if ((clientpid = vfork()) == 0) {
301 + if (setuid(getuid()) == -1) {
302 + Error("cannot change uid: %s\n", strerror(errno));
305 setpgrp(0, getpid());
306 environ = newenviron;
308 Index: xc/programs/xload/xload.c
309 ===================================================================
310 RCS file: /cvs/xorg/xc/programs/xload/xload.c,v
311 retrieving revision 1.2
312 diff -u -r1.2 xload.c
313 --- xc/programs/xload/xload.c 23 Apr 2004 19:54:57 -0000 1.2
314 +++ xc/programs/xload/xload.c 5 Jun 2006 10:35:21 -0000
316 * xload - display system load average in a window
325 /* For security reasons, we reset our uid/gid after doing the necessary
326 system initialization and before calling any X routines. */
328 - setgid(getgid()); /* reset gid first while still (maybe) root */
330 + /* reset gid first while still (maybe) root */
331 + if (setgid(getgid()) == -1) {
332 + fprintf(stderr, "%s: setgid failed: %s\n",
333 + ProgramName, strerror(errno));
336 + if (setuid(getuid()) == -1) {
337 + fprintf(stderr, "%s: setuid failed: %s\n",
338 + ProgramName, strerror(errno));
342 XtSetLanguageProc(NULL, (XtLanguageProc) NULL, NULL);
344 Index: xc/programs/xterm/main.c
345 ===================================================================
346 RCS file: /cvs/xorg/xc/programs/xterm/main.c,v
347 retrieving revision 1.8
349 --- xc/programs/xterm/main.c 14 Dec 2005 23:28:27 -0000 1.8
350 +++ xc/programs/xterm/main.c 5 Jun 2006 10:35:22 -0000
351 @@ -1592,8 +1592,10 @@
352 Window winToEmbedInto = None;
354 #ifdef DISABLE_SETUID
357 + if (seteuid(getuid()) == -1)
359 + if (setuid(getuid()) == -1)
363 ProgramName = argv[0];
364 @@ -1619,8 +1621,16 @@
366 #if defined(USE_UTMP_SETGID)
370 + if (seteuid(getuid()) == -1) {
372 + "%s: unable to change back euid\n", ProgramName);
375 + if (setuid(getuid()) == -1) {
377 + "%s: unable to change back uid\n", ProgramName);
380 #define get_pty(pty, from) really_get_pty(pty, from)
383 Index: xc/programs/xterm/misc.c
384 ===================================================================
385 RCS file: /cvs/xorg/xc/programs/xterm/misc.c,v
386 retrieving revision 1.6
388 --- xc/programs/xterm/misc.c 14 Dec 2005 23:28:27 -0000 1.6
389 +++ xc/programs/xterm/misc.c 5 Jun 2006 10:35:22 -0000
390 @@ -1094,8 +1094,10 @@
396 + if (setgid(gid) == -1)
397 + _exit(ERROR_SETUID);
398 + if (setuid(uid) == -1)
399 + _exit(ERROR_SETUID);
401 O_WRONLY | O_CREAT | (append ? O_APPEND : O_EXCL),
403 @@ -1262,8 +1264,10 @@
404 signal(SIGCHLD, SIG_DFL);
406 /* (this is redundant) */
407 - setgid(screen->gid);
408 - setuid(screen->uid);
409 + if (setgid(screen->gid) == -1)
410 + exit(ERROR_SETUID);
411 + if (setuid(screen->uid) == -1)
412 + exit(ERROR_SETUID);
414 execl(shell, shell, "-c", &screen->logfile[1], (void *) 0);
416 Index: xc/programs/xterm/print.c
417 ===================================================================
418 RCS file: /cvs/xorg/xc/programs/xterm/print.c,v
419 retrieving revision 1.5
420 diff -u -r1.5 print.c
421 --- xc/programs/xterm/print.c 5 Aug 2005 16:13:04 -0000 1.5
422 +++ xc/programs/xterm/print.c 5 Jun 2006 10:35:22 -0000
424 dup2(fileno(stderr), 2);
425 close(fileno(stderr));
428 - setgid(screen->gid); /* don't want privileges! */
429 - setuid(screen->uid);
430 + /* don't want privileges! */
431 + if (setgid(screen->gid) == -1)
433 + if (setuid(screen->uid) == -1)
436 Printer = popen(screen->printer_command, "w");
437 input = fdopen(my_pipe[0], "r");