mirror of
https://git.proxmox.com/git/mirror_frr
synced 2026-01-06 03:40:52 +00:00
ospf6d: Route locking (memory) cleanup
* ospf6_route.c: (ospf6_route_best_next) Allows unlock route, even when there's no next route. This is consistent with how ospf6_route_next() behaves. * ospf6_intra.c: (ospf6_intra_prefix_lsa_remove) Make sure the last route considered is always unlocked. This is needed when the for loop terminates because ospf6_route_is_prefix() returns zero.
This commit is contained in:
parent
ae2254aa7f
commit
e7a6d80d4f
@ -1177,6 +1177,8 @@ ospf6_intra_prefix_lsa_remove (struct ospf6_lsa *lsa)
|
||||
}
|
||||
ospf6_route_remove (route, oa->route_table);
|
||||
}
|
||||
if (route)
|
||||
ospf6_route_unlock (route);
|
||||
}
|
||||
|
||||
if (current != end && IS_OSPF6_DEBUG_EXAMIN (INTRA_PREFIX))
|
||||
|
||||
@ -690,6 +690,8 @@ ospf6_route_best_next (struct ospf6_route *route)
|
||||
struct route_node *rnode;
|
||||
struct ospf6_route *next;
|
||||
|
||||
ospf6_route_unlock (route);
|
||||
|
||||
rnode = route->rnode;
|
||||
route_lock_node (rnode);
|
||||
rnode = route_next (rnode);
|
||||
@ -701,7 +703,6 @@ ospf6_route_best_next (struct ospf6_route *route)
|
||||
|
||||
assert (rnode->info);
|
||||
next = (struct ospf6_route *) rnode->info;
|
||||
ospf6_route_unlock (route);
|
||||
ospf6_route_lock (next);
|
||||
return next;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user