diff options
-rw-r--r-- | sys/netinet6/nd6_rtr.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/sys/netinet6/nd6_rtr.c b/sys/netinet6/nd6_rtr.c index 588fb8c..7df364e 100644 --- a/sys/netinet6/nd6_rtr.c +++ b/sys/netinet6/nd6_rtr.c @@ -1331,16 +1331,15 @@ find_pfxlist_reachable_router(struct nd_prefix *pr) struct llentry *ln; int canreach; - for (pfxrtr = LIST_FIRST(&pr->ndpr_advrtrs); pfxrtr; + for (pfxrtr = LIST_FIRST(&pr->ndpr_advrtrs); pfxrtr != NULL; pfxrtr = LIST_NEXT(pfxrtr, pfr_entry)) { IF_AFDATA_LOCK(pfxrtr->router->ifp); ln = nd6_lookup(&pfxrtr->router->rtaddr, 0, pfxrtr->router->ifp); IF_AFDATA_UNLOCK(pfxrtr->router->ifp); - canreach = 0; - if (ln != NULL) { - canreach = ND6_IS_LLINFO_PROBREACH(ln); - LLE_RUNLOCK(ln); - } + if (ln == NULL) + continue; + canreach = ND6_IS_LLINFO_PROBREACH(ln); + LLE_RUNLOCK(ln); if (canreach) break; } |