diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c index 90d2563ea644..d312778c7a0b 100644 --- a/sys/netinet/if_ether.c +++ b/sys/netinet/if_ether.c @@ -790,10 +790,13 @@ in_arpinput(struct mbuf *m) */ IF_AFDATA_WLOCK(ifp); la = lla_create(LLTABLE(ifp), 0, (struct sockaddr *)&sin); - arp_update_lle(ah, ifp, la); + if (la != NULL) + arp_update_lle(ah, ifp, la); IF_AFDATA_WUNLOCK(ifp); - arp_mark_lle_reachable(la); - LLE_WUNLOCK(la); + if (la != NULL) { + arp_mark_lle_reachable(la); + LLE_WUNLOCK(la); + } } reply: if (op != ARPOP_REQUEST)