summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgilles <gilles@openbsd.org>2014-10-02 21:27:54 +0000
committergilles <gilles@openbsd.org>2014-10-02 21:27:54 +0000
commitf3fad8caa3871fc72481a6b658552ac7ffde2f7e (patch)
tree11cd170817c7bfc6ce0f2e297541b8d7c6e03080
parentUpdate to tzdata2014h from ftp.iana.org (diff)
downloadwireguard-openbsd-f3fad8caa3871fc72481a6b658552ac7ffde2f7e.tar.xz
wireguard-openbsd-f3fad8caa3871fc72481a6b658552ac7ffde2f7e.zip
when no domain is specified in MAIL FROM or RCPT TO, assume local user
-rw-r--r--usr.sbin/smtpd/smtp_session.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/usr.sbin/smtpd/smtp_session.c b/usr.sbin/smtpd/smtp_session.c
index 0487f55af9a..1ebd86ac308 100644
--- a/usr.sbin/smtpd/smtp_session.c
+++ b/usr.sbin/smtpd/smtp_session.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: smtp_session.c,v 1.215 2014/07/09 12:44:54 eric Exp $ */
+/* $OpenBSD: smtp_session.c,v 1.216 2014/10/02 21:27:54 gilles Exp $ */
/*
* Copyright (c) 2008 Gilles Chehade <gilles@poolp.org>
@@ -1758,21 +1758,20 @@ smtp_mailaddr(struct mailaddr *maddr, char *line, int mailfrom, char **args,
if (!valid_localpart(maddr->user) ||
!valid_domainpart(maddr->domain)) {
- /* We accept empty sender for MAIL FROM */
- if (mailfrom &&
- maddr->user[0] == '\0' &&
- maddr->domain[0] == '\0')
+ /* accept empty return-path in MAIL FROM, required for bounces */
+ if (mailfrom && maddr->user[0] == '\0' && maddr->domain[0] == '\0')
return (1);
- /* We accept empty domain for RCPT TO if user is postmaster */
- if (!mailfrom &&
- strcasecmp(maddr->user, "postmaster") == 0 &&
- maddr->domain[0] == '\0') {
+ /* no user-part, reject */
+ if (maddr->user[0] == '\0')
+ return (0);
+
+ /* no domain, local user */
+ if (maddr->domain[0] == '\0') {
(void)strlcpy(maddr->domain, domain,
sizeof(maddr->domain));
return (1);
}
-
return (0);
}