mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] bpftool: Fix memory leak in dump_link_nlmsg on realloc failure
@ 2025-06-19  3:10 chenyuan
  2025-06-19  6:57 ` [PATH v2] bpftool: Fix memory leak in dump_xx_nlmsg " chenyuan
  0 siblings, 1 reply; 7+ messages in thread
From: chenyuan @ 2025-06-19  3:10 UTC (permalink / raw)
  To: ast, andrii; +Cc: bpf, linux-kernel, chenyuan_fl, chenyuan

From: chenyuan <chenyuan@kylinos.cn>

In function dump_link_nlmsg(), when realloc() fails to allocate memory,
the original pointer to the buffer is overwritten with NULL. This causes
a memory leak because the previously allocated buffer becomes unreachable
without being freed.

Fix: 7900efc19214 ("tools/bpf: bpftool: improve output format for bpftool net")
Signed-off-by: chenyuan <chenyuan@kylinos.cn>
---
 tools/bpf/bpftool/net.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/tools/bpf/bpftool/net.c b/tools/bpf/bpftool/net.c
index 64f958f437b0..e00637b85e56 100644
--- a/tools/bpf/bpftool/net.c
+++ b/tools/bpf/bpftool/net.c
@@ -366,17 +366,18 @@ static int dump_link_nlmsg(void *cookie, void *msg, struct nlattr **tb)
 {
 	struct bpf_netdev_t *netinfo = cookie;
 	struct ifinfomsg *ifinfo = msg;
+	struct ip_devname_ifindex *tmp;
 
 	if (netinfo->filter_idx > 0 && netinfo->filter_idx != ifinfo->ifi_index)
 		return 0;
 
 	if (netinfo->used_len == netinfo->array_len) {
-		netinfo->devices = realloc(netinfo->devices,
-			(netinfo->array_len + 16) *
+		tmp = realloc(netinfo->devices, (netinfo->array_len + 16) *
 			sizeof(struct ip_devname_ifindex));
-		if (!netinfo->devices)
+		if (!tmp)
 			return -ENOMEM;
 
+		netinfo->devices = tmp;
 		netinfo->array_len += 16;
 	}
 	netinfo->devices[netinfo->used_len].ifindex = ifinfo->ifi_index;
-- 
2.25.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-06-20 18:39 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-06-19  3:10 [PATCH] bpftool: Fix memory leak in dump_link_nlmsg on realloc failure chenyuan
2025-06-19  6:57 ` [PATH v2] bpftool: Fix memory leak in dump_xx_nlmsg " chenyuan
2025-06-19  8:45   ` Quentin Monnet
2025-06-19 15:55   ` Alexei Starovoitov
2025-06-20  1:21     ` [PATCH v3] " Yuan Chen
2025-06-20  9:00       ` Quentin Monnet
2025-06-20 18:40       ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®