In virtual alias context, do not try to match catchall entries for
authoreric <eric@openbsd.org>
Tue, 28 Apr 2020 21:46:43 +0000 (21:46 +0000)
committereric <eric@openbsd.org>
Tue, 28 Apr 2020 21:46:43 +0000 (21:46 +0000)
usernames, but only for email addresses.  fixes an issue where
usernames always expand to the @ wildcard if defined in the virtual
alias file.

discussed with Gilles Chehade

ok millert@

usr.sbin/smtpd/aliases.c

index 884f696..1c602e9 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: aliases.c,v 1.77 2018/12/28 12:47:28 eric Exp $       */
+/*     $OpenBSD: aliases.c,v 1.78 2020/04/28 21:46:43 eric Exp $       */
 
 /*
  * Copyright (c) 2008 Gilles Chehade <gilles@poolp.org>
@@ -164,6 +164,10 @@ aliases_virtual_get(struct expand *expand, const struct mailaddr *maddr)
        if (ret)
                goto expand;
 
+       /* Do not try catch-all entries if there is no domain */
+       if (domain[0] == '\0')
+               return 0;
+
        if (!bsnprintf(buf, sizeof(buf), "@%s", domain))
                return 0;
        /* Failed ? We lookup for catch all for virtual domain */