Index: xc/ChangeLog =================================================================== RCS file: /cvs/xorg/xc/ChangeLog,v retrieving revision 1.20 diff -u -2 -0 -r1.20 ChangeLog --- a/xc/ChangeLog 6 May 2004 17:31:16 -0000 1.20 +++ b/xc/ChangeLog 8 May 2004 01:59:05 -0000 @@ -1,42 +1,49 @@ +2004-05-07 Roland Mainz + * xc/programs/Xserver/Xprint/attributes.c + BugZilla #608 ("Can not print on Debian/CUPS due to error |Xprt_64: + lpr: unable to print file: server-error-not-accepting-jobs|"): + Xprt did setup the list of supplementary group ids, causing print + failure when the the calling user must be a member in a specific + group to be allowed to print. + 2004-05-06 Egbert Eich * config/cf/X11.tmpl: * config/cf/site.def: * config/imake/imakemdep.h: * lib/Xaw/OS.c: * lib/Xxf86dga/XF86DGA.c: * lib/font/FreeType/module/Imakefile: * programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c: * programs/xedit/lisp/lisp.c: BugZilla #601: Fixing makedepend choking on floating point exception because CHAR_BIT is defined to __CHAR_BIT__ which is a compiler intrinsic define. BugZilla #605: Fixing build on IA64 which is broken due to the inclusion of the kernel header asm/page.h. Kernel headers however don't work with -ansi. The inclusion of asm/page.h can however savely be removed as it there are plenty of other ways to determine the page size. 2004-05-05 Roland Mainz - * xc/programs/Xserver/Xprint/ps/Imakefile * programs/Xserver/Xprint/ps/PsFonts.c BugZilla #551: PS DDX will not build on platforms with BuildFreeType NO. Patch by Alan Coopersmith . 2004-05-05 Roland Mainz * xc/programs/Xserver/Xprint/ps/psout.c BugZilla #536: RFE: PS output should contain the FreeType2 version being used. 2004-05-05 Egbert Eich * lib/font/FreeType/ftconfig.h: * lib/font/FreeType/fttools.c: (FTcheckForTTCName): * lib/font/FreeType/module/Imakefile: * lib/font/FreeType/module/ftheader.h: * lib/font/FreeType/module/myftstdlib.h: * lib/freetype2/Imakefile: * lib/freetype2/freetype/config/Imakefile: Index: xc/programs/Xserver/Xprint/attributes.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/Xprint/attributes.c,v retrieving revision 1.2 diff -u -2 -0 -r1.2 attributes.c --- a/xc/programs/Xserver/Xprint/attributes.c 23 Apr 2004 18:57:32 -0000 1.2 +++ b/xc/programs/Xserver/Xprint/attributes.c 8 May 2004 01:59:15 -0000 @@ -1153,41 +1153,48 @@ close(0); dup(pipefd[0]); close(pipefd[0]); /* * If a user name is specified, try to set our uid to match that * user name. This is to allow e.g. a banner page to show the * name of the printing user rather than the user who started * the print server. */ if(userName) { uid_t myUid; if((myUid = geteuid()) == (uid_t)0) { struct passwd *pPasswd; if((pPasswd = getpwnam(userName))) { - setuid((uid_t)pPasswd->pw_uid); + if (setgid((gid_t)pPasswd->pw_gid) != 0) + perror("SendFileToCommand: setgid() failure."); + + if (initgroups(userName, (gid_t)pPasswd->pw_gid) != 0) + perror("SendFileToCommand: initgroups() failure."); + + if (setuid((uid_t)pPasswd->pw_uid) != 0) + perror("SendFileToCommand: setuid() failure."); } } } /* return BadAlloc? */ if (execv(pCommand, argVector) == -1) { FatalError("unable to exec '%s'", pCommand); } } else { int res; (void) close(pipefd[0]); outPipe = fdopen(pipefd[1], "w"); (void) TransferBytes(fp, outPipe, (int)statBuf.st_size); (void) fclose(outPipe); (void) fclose(fp);