Is syslog() reentrant? Was: OpenBSD's spamd.

Dan Nelson dnelson at
Tue Dec 19 12:43:18 PST 2006

In the last episode (Dec 19), Christopher Hilton said:
> Christopher Hilton wrote:
> >Has anyone gotten a newer version of OpenBSD's spamd than the one in
> >ports going? I'm cvsupping my ports tree now but since I didn't see
> >an update on the cvs server I'm assuming 3.7 is the latest version.
> >
> >Between OpenBSD 3.7 and 3.8 spamd gained the ability to tarpit or
> >stutter at all connections for a configurable period of time. I
> >understand that stuttering for the first few seconds of the SMTP
> >dialog causes many spammers to go away before even generating a
> >greylisting tuple. It's something I'd like to try and see for myself
> >and it will be fairly easy since my primary MX is behind an OpenBSD
> >firewall. However, my secondary MX is a FreeBSD box with no such
> >protection and I fear that the spammers will just take advantage of
> >the fact that my secondary MX has weaker protections than my
> >primary.
> >
> A casual attempt to compile a fresher copy of the software shows that
> spamd is using the OpenBSD's reentrant syslog functions (syslog_r,
> openlog_r, etc) Is FreeBSD's syslog already reentrant?

It is, as of FreeBSD 5.4.  In previous versions only openlog() and
syslog("%m") with an invalid errno were non-reentrant.

	Dan Nelson
	dnelson at

More information about the freebsd-stable mailing list