nhrpd: drop peer references on freeing cache entry

When dropping an interface (e.g. at shutdown) while there are still
valid cache entries, the reference held on the cache entries' peer
pointers was leaking.

Fixes: #12505
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
David Lamparter 2023-03-19 12:38:49 +01:00
parent 07b427d164
commit 637a914d19

View File

@ -70,6 +70,8 @@ static void nhrp_cache_free(struct nhrp_cache *c)
notifier_call(&c->notifier_list, NOTIFY_CACHE_DELETE);
assert(!notifier_active(&c->notifier_list));
hash_release(nifp->cache_hash, c);
nhrp_peer_unref(c->cur.peer);
nhrp_peer_unref(c->new.peer);
THREAD_OFF(c->t_timeout);
THREAD_OFF(c->t_auth);
XFREE(MTYPE_NHRP_CACHE, c);