![]() |
On Fri, 30 Jul 1999, Jim Dossey wrote: > Tim Rice wrote: > > > > On Thu, 29 Jul 1999, Jim Dossey wrote: > > [snip] > > > > > > As a side note, I also tried using 4.0pl2 compiled on a 7.0.1 system but > > > it didn't work. I ran a truss on it and faxq was getting an EAGAIN > > > error when it tried to fork. > > > > Make sure your port.h has #define CONFIG_MAXGID 60000 > > That's one of the fixes the uw7 patch has. > > UnixWare 7 seems to have inherited some bugs from some > > of the Open Server 5 code. > > After a lot of research, it appears that hylafax has uncovered a bug in > Unixware 7.1. Several of the hylafax processes do seteuid()'s before > fork()ing. There is an old Unixware bug where root processes honor the > MAXUP tuneable, which is not supposed to happen. They have mostly fixed > it, except when you call seteuid() before a fork(). setuid() works > okay. I have submitted a bug report to SCO. In the mean time, I have > increased MAXUP to be equal to NPROC. > Interesting. The CONFIG_MAXGID workaround I was refering to is for a bug that shows up in the following test program. Opps, memory fault. The error on that one was EINVAL not EAGAIN. .... #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <limits.h> main () { setgid(UID_MAX) ; if (open ("./foo", O_RDWR|O_CREAT, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP) == -1 ) perror ("open:") ; } .... > It works fine on SCO Open Server 3 (AKA 3.2v4.2) and all UnixWare before 7.0.0 but fails on UnixWare 7.0.0 and later and SCO Open Server 5. -- Tim Rice Multitalents (707) 887-1469 (voice) tim@trr.metro.net