From 3f885f97f0bb812296cb549acd3c4b8fc17de0c9 Mon Sep 17 00:00:00 2001 From: Andrew Yourtchenko Date: Mon, 28 Nov 2022 17:56:16 +0000 Subject: stats: fix the memory leak in stat_client.c The issue can be reproduced by running "vpp_get_stats tightpoll" The root cause is that the control flow discards the "result" struct being prepared, along with pointer its allocated name. This results in a memory leak. Type: fix Change-Id: Ibf884e92314f19b983a0159fc1257b3fa0110443 Signed-off-by: Andrew Yourtchenko --- src/vpp-api/client/stat_client.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/vpp-api/client/stat_client.c b/src/vpp-api/client/stat_client.c index 2e8e1fadf8d..5bb6e9f1e56 100644 --- a/src/vpp-api/client/stat_client.c +++ b/src/vpp-api/client/stat_client.c @@ -287,6 +287,8 @@ copy_data (vlib_stats_entry_t *ep, u32 index2, char *name, { vlib_stats_entry_t *ep2; ep2 = vec_elt_at_index (sm->directory_vector, ep->index1); + /* We do not intend to return the "result", avoid a leak */ + free (result.name); return copy_data (ep2, ep->index2, ep->name, sm); } -- cgit 1.2.3-korg