From 637a914d19138c1c7b6aa7b6925b8a396a6a1ce1 Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Sun, 19 Mar 2023 12:38:49 +0100 Subject: [PATCH] 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 --- nhrpd/nhrp_cache.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nhrpd/nhrp_cache.c b/nhrpd/nhrp_cache.c index 31b370cbf8..42c6c2fbba 100644 --- a/nhrpd/nhrp_cache.c +++ b/nhrpd/nhrp_cache.c @@ -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); -- 2.39.5