diff options
Diffstat (limited to 'smtpd/enqueue.c')
-rw-r--r-- | smtpd/enqueue.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/smtpd/enqueue.c b/smtpd/enqueue.c index dcb40cd3..040a0d5b 100644 --- a/smtpd/enqueue.c +++ b/smtpd/enqueue.c @@ -1,4 +1,4 @@ -/* $OpenBSD: enqueue.c,v 1.115 2018/05/31 21:06:12 gilles Exp $ */ +/* $OpenBSD: enqueue.c,v 1.116 2019/07/02 09:36:20 martijn Exp $ */ /* * Copyright (c) 2005 Henning Brauer <henning@bulabula.org> @@ -173,8 +173,6 @@ enqueue(int argc, char *argv[], FILE *ofp) FILE *fp = NULL, *fout; size_t sz = 0, envid_sz = 0; ssize_t len; - int fd; - char sfn[] = "/tmp/smtpd.XXXXXXXXXX"; char *line; int dotted; int inheaders = 1; @@ -271,16 +269,9 @@ enqueue(int argc, char *argv[], FILE *ofp) argc--; } - if ((fd = mkstemp(sfn)) == -1 || - (fp = fdopen(fd, "w+")) == NULL) { - int saved_errno = errno; - if (fd != -1) { - unlink(sfn); - close(fd); - } - errc(EX_UNAVAILABLE, saved_errno, "mkstemp"); - } - unlink(sfn); + if ((fp = tmpfile()) == NULL) + err(EX_UNAVAILABLE, "tmpfile"); + msg.noheader = parse_message(stdin, fake_from == NULL, tflag, fp); if (msg.rcpt_cnt == 0) |