summaryrefslogtreecommitdiffstats
path: root/usr.sbin/smtpd
diff options
context:
space:
mode:
authormillert <millert@openbsd.org>2020-05-06 16:03:30 +0000
committermillert <millert@openbsd.org>2020-05-06 16:03:30 +0000
commitb69a92741ebdb48eb20816411974f69a1cab3e30 (patch)
treef931bf8a07b58a1fcfe9261e076a5f9028f9a235 /usr.sbin/smtpd
parentBump LibreSSL version to 3.1.1 (diff)
downloadwireguard-openbsd-b69a92741ebdb48eb20816411974f69a1cab3e30.tar.xz
wireguard-openbsd-b69a92741ebdb48eb20816411974f69a1cab3e30.zip
Only allow forkmda() to be called from a local action dispatcher.
From gilles@, OK deraadt@ jung@
Diffstat (limited to 'usr.sbin/smtpd')
-rw-r--r--usr.sbin/smtpd/smtpd.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/usr.sbin/smtpd/smtpd.c b/usr.sbin/smtpd/smtpd.c
index ce1262fa4fc..d0c67bab2af 100644
--- a/usr.sbin/smtpd/smtpd.c
+++ b/usr.sbin/smtpd/smtpd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: smtpd.c,v 1.332 2020/02/24 16:16:08 millert Exp $ */
+/* $OpenBSD: smtpd.c,v 1.333 2020/05/06 16:03:30 millert Exp $ */
/*
* Copyright (c) 2008 Gilles Chehade <gilles@poolp.org>
@@ -1409,6 +1409,8 @@ forkmda(struct mproc *p, uint64_t id, struct deliver *deliver)
const char *pw_dir;
dsp = dict_xget(env->sc_dispatchers, deliver->dispatcher);
+ if (dsp->type != DISPATCHER_LOCAL)
+ fatalx("non-local dispatcher called from forkmda()");
log_debug("debug: smtpd: forking mda for session %016"PRIx64
": %s as %s", id, deliver->userinfo.username,