diff options
| author | 2013-01-31 18:34:43 +0000 | |
|---|---|---|
| committer | 2013-01-31 18:34:43 +0000 | |
| commit | 1c6ac25114bf06f7d43719e74b098aea17cee49c (patch) | |
| tree | c6a9197bc346c4c8a38fb7caf01b634152987a65 /usr.sbin/smtpd/makemap.c | |
| parent | do not need to tweak the socket sndbuf, now that the envelopes are passed (diff) | |
| download | wireguard-openbsd-1c6ac25114bf06f7d43719e74b098aea17cee49c.tar.xz wireguard-openbsd-1c6ac25114bf06f7d43719e74b098aea17cee49c.zip | |
assorted fixes spotted by Coverity.
some log message updates.
ok gilles@
Diffstat (limited to 'usr.sbin/smtpd/makemap.c')
| -rw-r--r-- | usr.sbin/smtpd/makemap.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/usr.sbin/smtpd/makemap.c b/usr.sbin/smtpd/makemap.c index c8382f7593c..a624185a1d6 100644 --- a/usr.sbin/smtpd/makemap.c +++ b/usr.sbin/smtpd/makemap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: makemap.c,v 1.42 2013/01/26 09:37:23 gilles Exp $ */ +/* $OpenBSD: makemap.c,v 1.43 2013/01/31 18:34:43 eric Exp $ */ /* * Copyright (c) 2008 Gilles Chehade <gilles@poolp.org> @@ -90,8 +90,8 @@ main(int argc, char *argv[]) char *conf; int ch; DBTYPE dbtype = DB_HASH; - char *execname; char *p; + mode_t omode; log_init(1); @@ -101,7 +101,6 @@ main(int argc, char *argv[]) opts = "ho:t:d:"; if (mode == P_NEWALIASES) opts = "f:h"; - execname = argv[0]; while ((ch = getopt(argc, argv, opts)) != -1) { switch (ch) { @@ -153,7 +152,7 @@ main(int argc, char *argv[]) errx(1, "database name too long"); } - execlp(execname, execname, "-d", argv[0], "-o", dbname, "-", + execlp("makemap", "makemap", "-d", argv[0], "-o", dbname, "-", NULL); err(1, "execlp"); } @@ -180,8 +179,10 @@ main(int argc, char *argv[]) if (! bsnprintf(dbname, sizeof(dbname), "%s.XXXXXXXXXXX", oflag)) errx(1, "path too long"); + omode = umask(7077); if (mkstemp(dbname) == -1) err(1, "mkstemp"); + umask(omode); db = dbopen(dbname, O_EXLOCK|O_RDWR|O_SYNC, 0644, dbtype, NULL); if (db == NULL) { |
