From ec1dfcef5b3748df96ae464ad5be935a91d1b319 Mon Sep 17 00:00:00 2001 From: jeremy marchand Date: Thu, 18 Feb 2021 14:28:40 +0100 Subject: m_cleanup: fix memory leaks m_cleanup didn't cleanup the if_batchq and if_fastq queues, resulting in a memory leak (reported by ASAN while fuzzing). --- src/mbuf.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/mbuf.c b/src/mbuf.c index 54ec721..93c27b5 100644 --- a/src/mbuf.c +++ b/src/mbuf.c @@ -48,6 +48,18 @@ void m_cleanup(Slirp *slirp) g_free(m); m = next; } + m = (struct mbuf *)slirp->if_batchq.qh_link; + while ((struct quehead *)m != &slirp->if_batchq) { + next = m->m_next; + g_free(m); + m = next; + } + m = (struct mbuf *)slirp->if_fastq.qh_link; + while ((struct quehead *)m != &slirp->if_fastq) { + next = m->m_next; + g_free(m); + m = next; + } } /* -- cgit v1.1