456N/A
456N/A--- di/main.c Sun Jun 15 15:54:22 2008
456N/A+++ di/main.c Sun Jun 15 15:55:06 2008
456N/A@@ -80,6 +80,11 @@
456N/A int argc;
456N/A char **argv;
456N/A {
456N/A+ /* Temporarily give up gid 0 - ConnectToServer restores when needed
456N/A+ * to create pipes/sockets in /tmp/.X11-*
456N/A+ */
456N/A+ setegid(getgid());
456N/A+
456N/A display = "63";
456N/A
456N/A ProcessCommandLine (argc, argv);
456N/A
456N/A--- di/wire.c Sun Jun 15 16:04:05 2008
456N/A+++ di/wire.c Sun Jun 15 16:06:02 2008
456N/A@@ -1541,7 +1541,13 @@
456N/A */
456N/A for (j=0; j < MAXTRANSPORTS; j++)
456N/A server->listen_fds[j] = -1;
456N/A+ if(getegid() == getgid()) {
456N/A+ setegid(0);
456N/A+ }
456N/A CreateServerSockets(server->listen_fds);
456N/A+ if(getegid() != getgid()) {
456N/A+ setegid(getgid());
456N/A+ }
456N/A
456N/A /*
456N/A * Generate the proxy address and save the host name part
456N/A
456N/A--- di/dispatch.c Sun Jun 15 15:52:10 2008
456N/A+++ di/dispatch.c Sun Jun 15 15:52:32 2008
456N/A@@ -449,6 +449,11 @@
456N/A void (*zeroPadProc)();
456N/A extern int lbxZeroPad;
456N/A
456N/A+ if(MAJOROP == 104) { /* XBell */
456N/A+ if ((4 >> 2) != client->req_len)
456N/A+ return(BadLength);
456N/A+ }
456N/A+
456N/A if (lbxZeroPad &&
456N/A (MAJOROP < 128) && (zeroPadProc = ZeroPadReqVector[MAJOROP]))
456N/A (*zeroPadProc) ((void *) stuff);