diff --git a/ospfd/ospf_snmp.c b/ospfd/ospf_snmp.c index 9f91776944..604766d825 100644 --- a/ospfd/ospf_snmp.c +++ b/ospfd/ospf_snmp.c @@ -1927,6 +1927,9 @@ ospf_snmp_vl_add (struct ospf_vl_data *vl_data) lp.adv_router = vl_data->vl_peer; rn = route_node_get (ospf_snmp_vl_table, (struct prefix *) &lp); + if (rn->info) + route_unlock_node (rn); + rn->info = vl_data; } diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c index b4da733610..7af6ddc379 100644 --- a/ospfd/ospfd.c +++ b/ospfd/ospfd.c @@ -1830,6 +1830,8 @@ ospf_nbr_nbma_set (struct ospf *ospf, struct in_addr nbr_addr) p.prefixlen = IPV4_MAX_BITLEN; rn = route_node_get (ospf->nbr_nbma, (struct prefix *)&p); + if (rn->info) + route_unlock_node (rn); rn->info = nbr_nbma; for (ALL_LIST_ELEMENTS_RO (ospf->oiflist, node, oi))