diff options
author | 2014-10-02 21:27:54 +0000 | |
---|---|---|
committer | 2014-10-02 21:27:54 +0000 | |
commit | f3fad8caa3871fc72481a6b658552ac7ffde2f7e (patch) | |
tree | 11cd170817c7bfc6ce0f2e297541b8d7c6e03080 | |
parent | Update to tzdata2014h from ftp.iana.org (diff) | |
download | wireguard-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.c | 19 |
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); } |