summaryrefslogtreecommitdiffstats
path: root/sys/netinet/if_ether.c
diff options
context:
space:
mode:
authorsmh <smh@FreeBSD.org>2015-12-16 22:26:28 +0000
committersmh <smh@FreeBSD.org>2015-12-16 22:26:28 +0000
commit0813e34dbc203efa23fb9ee80b8344b8cd776c67 (patch)
tree50a3f7a5d929749c70ba8b02a06c22d8388d019a /sys/netinet/if_ether.c
parent63cd1c131acbe2c4896430de52395b168ee9b73d (diff)
downloadFreeBSD-src-0813e34dbc203efa23fb9ee80b8344b8cd776c67.zip
FreeBSD-src-0813e34dbc203efa23fb9ee80b8344b8cd776c67.tar.gz
Fix issues introduced by r292275
* Fix panic for etherswitches which don't have a LLADDR. * Disabled DELAY in unsolicited NDA, which needs further work. * Fixed missing DELAY in carp_send_na. * style(9) fix. Reported by: kp & melifaro X-MFC-With: r292275 MFC after: 1 month Sponsored by: Multiplay
Diffstat (limited to 'sys/netinet/if_ether.c')
-rw-r--r--sys/netinet/if_ether.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c
index ce1487f..6ca4844 100644
--- a/sys/netinet/if_ether.c
+++ b/sys/netinet/if_ether.c
@@ -1217,7 +1217,8 @@ arp_announce(struct ifnet *ifp)
struct ifaddr *ifa;
struct in_addr *addr, *head;
- if (!(ifp->if_flags & IFF_UP) || (ifp->if_flags & IFF_NOARP))
+ if (!(ifp->if_flags & IFF_UP) || (ifp->if_flags & IFF_NOARP) ||
+ ifp->if_addr == NULL)
return;
entries = 8;
@@ -1254,9 +1255,11 @@ arp_announce(struct ifnet *ifp)
}
IF_ADDR_RUNLOCK(ifp);
- lladdr = IF_LLADDR(ifp);
- for (i = 0; i < cnt; i++) {
- arp_announce_addr(ifp, head + i, lladdr);
+ if (cnt > 0) {
+ lladdr = IF_LLADDR(ifp);
+ for (i = 0; i < cnt; i++) {
+ arp_announce_addr(ifp, head + i, lladdr);
+ }
}
free(head, M_TEMP);
}
OpenPOWER on IntegriCloud