[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240427025720.1321211-1-lumingyindetect@126.com>
Date: Sat, 27 Apr 2024 03:57:20 +0100
From: lumingyindetect@....com
To: linux-trace-kernel@...r.kernel.org,
linux-kernel@...r.kernel.org
Cc: rostedt@...dmis.org,
mhiramat@...nel.org,
mathieu.desnoyers@...icios.com,
LuMingYin <lumingyindetect@....com>
Subject: [PATCH v2] tracing/probes: Fix memory leak in traceprobe_parse_probe_arg_body
From: LuMingYin <lumingyindetect@....com>
If traceprobe_parse_probe_arg_body() fails to allocate 'parg->fmt', it
jumps to 'out' instead of 'fail' by mistake. In the result, in this
case the 'tmp' buffer is not freed and leaks its memory.
Fix it by jumping to 'fail' in that case.
Fixes: 032330abd08b ("tracing/probes: Cleanup probe argument parser")
Signed-off-by: LuMingYin <lumingyindetect@....com>
---
kernel/trace/trace_probe.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/trace/trace_probe.c b/kernel/trace/trace_probe.c
index dfe3ee6035ec..42bc0f362226 100644
--- a/kernel/trace/trace_probe.c
+++ b/kernel/trace/trace_probe.c
@@ -1466,7 +1466,7 @@ static int traceprobe_parse_probe_arg_body(const char *argv, ssize_t *size,
parg->fmt = kmalloc(len, GFP_KERNEL);
if (!parg->fmt) {
ret = -ENOMEM;
- goto out;
+ goto fail;
}
snprintf(parg->fmt, len, "%s[%d]", parg->type->fmttype,
parg->count);
--
2.25.1
Powered by blists - more mailing lists