syslog(3) as user sets errno
Stefan Ehmann
shoesoft at gmx.net
Sat Apr 28 12:43:17 UTC 2007
If a non-privilged program calls syslog(3), after the call, errno is set to 13
(permission denied).
In lib/libc/gen/syslog.c connectlog(), it is first tried to connect
to /var/run/logpriv. If it fails /var/run/log is tried.
The first connect fails if syslog() is not called as root, it fails with
errno=13 and the second connect succeeds.
This is all fine, except that errno is set to 13 after calling syslog().
Is this a bug or expected behaviour?
IMHO errno should be set to 0 before the second connect is called -- or is
this a bad idea?
Stefan
More information about the freebsd-questions
mailing list