summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ospfd/ospf_snmp.c3
-rw-r--r--ospfd/ospfd.c2
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))