incoming_queue is allocated by qemu_new_net_queue() and must be torn down with qemu_del_net_queue(), which frees any queued NetPacket nodes.
Using g_free() on the NetQueue struct directly could leak packets if the queue was not empty.
Clear the pointer after destroy.
Signed-off-by: Yi Xie <xieyi@kylinos.cn>
---
net/filter-buffer.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/net/filter-buffer.c b/net/filter-buffer.c
index 427da24097..ce3e9027a0 100644
--- a/net/filter-buffer.c
+++ b/net/filter-buffer.c
@@ -95,7 +95,8 @@ static void filter_buffer_cleanup(NetFilterState *nf)
/* flush packets */
if (s->incoming_queue) {
filter_buffer_flush(nf);
- g_free(s->incoming_queue);
+ qemu_del_net_queue(s->incoming_queue);
+ s->incoming_queue = NULL;
}
}
--
2.25.1