Message ID | 20241128125432.2748981-2-quic_zhonhan@quicinc.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | perf tool: Fix multiple memory leakages | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 3451e542b69a..fbba6ffafec4 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -3205,7 +3205,8 @@ static int process_bpf_btf(struct feat_fd *ff, void *data __maybe_unused) if (__do_read(ff, node->data, data_size)) goto out; - __perf_env__insert_btf(env, node); + if (!__perf_env__insert_btf(env, node)) + free(node); node = NULL; }
If __perf_env__insert_btf() returns false due to a duplicate btf node insertion, the temporary node will leak. Add a check to ensure the memory is freed if the function returns false. Fixes: 9c51f8788b5d ("perf env: Avoid recursively taking env->bpf_progs.lock") Signed-off-by: Zhongqiu Han <quic_zhonhan@quicinc.com> --- tools/perf/util/header.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)