diff options
author | 2020-12-30 18:41:06 +0000 | |
---|---|---|
committer | 2020-12-30 18:41:06 +0000 | |
commit | e798b9184045de3e10d68a5261d32d94b11b2ebc (patch) | |
tree | 3bd66f858fcbf8f05105b7dfc31dd88cbf3ed642 | |
parent | getifaddrs() can return entries where ifa_addr is NULL. Check for this (diff) | |
download | wireguard-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.c | 5 |
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; |