summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbenno <benno@openbsd.org>2020-12-30 18:41:06 +0000
committerbenno <benno@openbsd.org>2020-12-30 18:41:06 +0000
commite798b9184045de3e10d68a5261d32d94b11b2ebc (patch)
tree3bd66f858fcbf8f05105b7dfc31dd88cbf3ed642
parentgetifaddrs() can return entries where ifa_addr is NULL. Check for this (diff)
downloadwireguard-openbsd-e798b9184045de3e10d68a5261d32d94b11b2ebc.tar.xz
wireguard-openbsd-e798b9184045de3e10d68a5261d32d94b11b2ebc.zip
getifaddrs() can return entries where ifa_addr is NULL. Check for this
before accessing anything in ifa_addr. ok claudio@
-rw-r--r--usr.sbin/inetd/inetd.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/usr.sbin/inetd/inetd.c b/usr.sbin/inetd/inetd.c
index 4627ef81148..2c623ef66d1 100644
--- a/usr.sbin/inetd/inetd.c
+++ b/usr.sbin/inetd/inetd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: inetd.c,v 1.161 2019/06/28 13:32:48 deraadt Exp $ */
+/* $OpenBSD: inetd.c,v 1.162 2020/12/30 18:41:06 benno Exp $ */
/*
* Copyright (c) 1983,1991 The Regents of the University of California.
@@ -487,7 +487,8 @@ dg_broadcast(struct in_addr *in)
if (getifaddrs(&ifap) == -1)
return (0);
for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
- if (ifa->ifa_addr->sa_family != AF_INET ||
+ if (ifa->ifa_addr == NULL ||
+ ifa->ifa_addr->sa_family != AF_INET ||
(ifa->ifa_flags & IFF_BROADCAST) == 0)
continue;
sin = (struct sockaddr_in *)ifa->ifa_broadaddr;