mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-04 00:38:24 +00:00
Merge pull request #16554 from donaldsharp/zebra_ensure_no_use_after_free
zebra: Ensure non-equal id's are not same nhg's
This commit is contained in:
commit
263eb6d141
@ -525,9 +525,18 @@ bool zebra_nhg_hash_equal(const void *arg1, const void *arg2)
|
||||
struct nexthop *nexthop1;
|
||||
struct nexthop *nexthop2;
|
||||
|
||||
/* No matter what if they equal IDs, assume equal */
|
||||
if (nhe1->id && nhe2->id && (nhe1->id == nhe2->id))
|
||||
return true;
|
||||
/* If both NHG's have id's then we can just know that
|
||||
* they are either identical or not. This comparison
|
||||
* is only ever used for hash equality. NHE's id
|
||||
* is sufficient to distinguish them. This is especially
|
||||
* true if NHG's are owned by an upper level protocol.
|
||||
*/
|
||||
if (nhe1->id && nhe2->id) {
|
||||
if (nhe1->id == nhe2->id)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (nhe1->type != nhe2->type)
|
||||
return false;
|
||||
|
Loading…
Reference in New Issue
Block a user