Maybe I am being thick here but:
(OpenBSD-current, exim-3.033 test)
bash-2.03$ /usr/sbin/exim -bt peter
[LONG PAUSE]
1999-09-09 16:27:56 Failed to get user name for uid 1101463616
Then:
bash-2.03$ cp /usr/sbin/exim .
bash-2.03$ ls -l exim
-rwxr-xr-x 1 pmg001 pmg001 1073330 Sep 9 16:28 exim
bash-2.03$ ./exim -bt peter
peter@???
deliver to peter@???
router = lookuphost, transport = remote_smtp
host mx10.knowledge.com [195.40.167.211] MX=10
host mx20.knowledge.com [195.40.167.196] MX=20
host mx30.knowledge.com [193.195.141.1] MX=30
host mx40.knowledge.com [194.205.98.200] MX=40
Any ideas ? getpwuid *is* OK, since "id" says:
bash-2.03$ id
uid=1101463616(pmg001) gid=1101463616(pmg001) groups=1101463616(pmg001)
bash-2.03$ id 1101463616
uid=1101463616(pmg001) gid=1101463616(pmg001) groups=1101463616(pmg001)
A recent couple of atoi() mis-uses were fixed in OpenBSD's libc that
were screwing up UID's > 2^31, but I cannot figure this one.
In case the session above has not made it clear, the copy of the exim
binary removed the SUID bit, and is now being run as a normal user.
Both my normal (peter) and new (pmg001) account are in the YP maps,
the only real difference being the UID/GID numbers. The former works
fine, the later gives the error, so I do not suspect YP or getpwuid.
The code in src/exim.c looks simple enough, but I have not yet had
time to drop a load of printf()s in there. My GDB skills are too
rusty - especially on a SUID program.
System access for debugging available on request...
Regards,
--
Peter Galbavy
Knowledge Matters Ltd
http://www.knowledge.com/