summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreric <eric@openbsd.org>2019-08-23 15:39:11 +0000
committereric <eric@openbsd.org>2019-08-23 15:39:11 +0000
commitcc302d382ff9bb601d7082ca852271c6b671a58c (patch)
treee8d0d69c6694d2d26ef43c0ee36ccf6130e26c80
parentdocument RSAPrivateKey_dup(3) and RSAPublicKey_dup(3) (diff)
downloadwireguard-openbsd-cc302d382ff9bb601d7082ca852271c6b671a58c.tar.xz
wireguard-openbsd-cc302d382ff9bb601d7082ca852271c6b671a58c.zip
only process records of the expected type.
fix an issue where CNAME records generate bogus results. ok gilles@
-rw-r--r--usr.sbin/smtpd/spfwalk.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/usr.sbin/smtpd/spfwalk.c b/usr.sbin/smtpd/spfwalk.c
index 22b057963f9..40d4888d564 100644
--- a/usr.sbin/smtpd/spfwalk.c
+++ b/usr.sbin/smtpd/spfwalk.c
@@ -229,6 +229,9 @@ dispatch_mx(struct dns_rr *rr)
{
char buf[512];
+ if (rr->rr_type != T_MX)
+ return;
+
print_dname(rr->rr.mx.exchange, buf, sizeof(buf));
buf[strlen(buf) - 1] = '\0';
if (buf[strlen(buf) - 1] == '.')
@@ -243,6 +246,9 @@ dispatch_a(struct dns_rr *rr)
char buffer[512];
const char *ptr;
+ if (rr->rr_type != T_A)
+ return;
+
if ((ptr = inet_ntop(AF_INET, &rr->rr.in_a.addr,
buffer, sizeof buffer)))
printf("%s\n", ptr);
@@ -254,6 +260,9 @@ dispatch_aaaa(struct dns_rr *rr)
char buffer[512];
const char *ptr;
+ if (rr->rr_type != T_AAAA)
+ return;
+
if ((ptr = inet_ntop(AF_INET6, &rr->rr.in_aaaa.addr6,
buffer, sizeof buffer)))
printf("%s\n", ptr);