diff options
-rw-r--r-- | ospfd/ospf_snmp.c | 3 | ||||
-rw-r--r-- | ospfd/ospfd.c | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/ospfd/ospf_snmp.c b/ospfd/ospf_snmp.c index 9f917769..604766d8 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 4062d645..019a22b7 100644 --- a/ospfd/ospfd.c +++ b/ospfd/ospfd.c @@ -1557,6 +1557,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)) |