CVSROOT:        /cvs
Module name:    src
Changes by:     gil...@cvs.openbsd.org  2010/03/01 15:00:52

Modified files:
        usr.sbin/smtpd : mda.c 

Log message:
mda_event() assumed the mbox fp to be a file when it could be a pipe, do
not fatal on read/write errors otherwise a broken pipe in an external mda
will bring smtpd down.

mda_store() assumed write would succeed and fatal otherwise, change code
so that EINTR/EAGAIN trigger a new write while other errors gracefully
return causing the message to be rescheduled later.

these two prevent a fatal() from being hit when execution of a filter or
external mda fails (bug experienced and fix verified by nicm@)

while at it, fix a small bug where logs would not display the recipient
when mail went through a ~/.forward / aliases expansion.

Reply via email to