aboutsummaryrefslogtreecommitdiffstats
path: root/smtpd/delivery_filename.c
diff options
context:
space:
mode:
authorGilles Chehade <gilles@poolp.org>2012-12-26 12:51:30 +0100
committerGilles Chehade <gilles@poolp.org>2012-12-26 12:51:30 +0100
commit09940830564b37ac9cac09790eb1e458d0624f10 (patch)
treebec89e4a50df1a4bb52ffb2c6978f0584aa6cf66 /smtpd/delivery_filename.c
parentsend commit/rollback event to the mfa (diff)
downloadOpenSMTPD-09940830564b37ac9cac09790eb1e458d0624f10.tar.xz
OpenSMTPD-09940830564b37ac9cac09790eb1e458d0624f10.zip
do not fail on EINVAL in delivery_filename as we may be delivering
to a descriptor that does not support fsync()
Diffstat (limited to 'smtpd/delivery_filename.c')
-rw-r--r--smtpd/delivery_filename.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/smtpd/delivery_filename.c b/smtpd/delivery_filename.c
index f4bc4880..58b9a6f5 100644
--- a/smtpd/delivery_filename.c
+++ b/smtpd/delivery_filename.c
@@ -92,8 +92,10 @@ delivery_filename_open(struct deliver *deliver)
putc('\n', fp);
if (fflush(fp) == EOF || ferror(fp))
error2("write error");
- if (fsync(fd) < 0)
- error2("fsync");
+ if (fsync(fd) == -1) {
+ if (errno != EINVAL)
+ error2("fsync");
+ }
if (fclose(fp) == EOF)
error2("fclose");
_exit(0);