aboutsummaryrefslogtreecommitdiffstats
path: root/smtpd/enqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'smtpd/enqueue.c')
-rw-r--r--smtpd/enqueue.c17
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)