diff options
Diffstat (limited to 'ospfd/ospf_sr.c')
| -rw-r--r-- | ospfd/ospf_sr.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/ospfd/ospf_sr.c b/ospfd/ospf_sr.c index 2c7c80686c..3a71e55710 100644 --- a/ospfd/ospf_sr.c +++ b/ospfd/ospf_sr.c @@ -756,13 +756,14 @@ static struct ospf_neighbor *get_neighbor_by_addr(struct ospf *top, for (ALL_LIST_ELEMENTS_RO(top->oiflist, node, oi)) for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) { nbr = rn->info; - if (nbr) - if (IPV4_ADDR_SAME(&nbr->address.u.prefix4, - &addr) - || IPV4_ADDR_SAME(&nbr->router_id, &addr)) { - route_unlock_node(rn); - return nbr; - } + if (!nbr) + continue; + + if (IPV4_ADDR_SAME(&nbr->address.u.prefix4, &addr) || + IPV4_ADDR_SAME(&nbr->router_id, &addr)) { + route_unlock_node(rn); + return nbr; + } } return NULL; } |
