[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20250112124431.87bed2765b5387d903b731b9@kernel.org>
Date: Sun, 12 Jan 2025 12:44:31 +0900
From: Masami Hiramatsu (Google) <mhiramat@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Masami Hiramatsu (Google) <mhiramat@...nel.org>, Steven Rostedt
<rostedt@...dmis.org>, Masami Hiramatsu <mhiramat@...nel.org>,
linux-kernel@...r.kernel.org
Subject: [GIT PULL] probes: Fixes for v6.13-rc6
Hi Linus,
Probes fixes for v6.13-rc6:
- tracing/kprobes: Fix to free trace_kprobe objects at a failure path
in __trace_kprobe_create() function. This fixes a memory leak.
Please pull the latest probes-fixes-v6.13-rc6 tree, which can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
probes-fixes-v6.13-rc6
Tag SHA1: 34f0f018d7a3ef1a99d316dd0f4854410f6cc8e7
Head SHA1: 30c8fd31c571db486a5331a92d03eb60a0fb277c
Masami Hiramatsu (Google) (1):
tracing/kprobes: Fix to free objects when failed to copy a symbol
----
kernel/trace/trace_kprobe.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
---------------------------
commit 30c8fd31c571db486a5331a92d03eb60a0fb277c
Author: Masami Hiramatsu (Google) <mhiramat@...nel.org>
Date: Thu Jan 9 23:29:37 2025 +0900
tracing/kprobes: Fix to free objects when failed to copy a symbol
In __trace_kprobe_create(), if something fails it must goto error block
to free objects. But when strdup() a symbol, it returns without that.
Fix it to goto the error block to free objects correctly.
Link: https://lore.kernel.org/all/173643297743.1514810.2408159540454241947.stgit@devnote2/
Fixes: 6212dd29683e ("tracing/kprobes: Use dyn_event framework for kprobe events")
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@...nel.org>
Reviewed-by: Steven Rostedt (Google) <rostedt@...dmis.org>
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
index 935a886af40c..0642ea174849 100644
--- a/kernel/trace/trace_kprobe.c
+++ b/kernel/trace/trace_kprobe.c
@@ -940,8 +940,10 @@ static int __trace_kprobe_create(int argc, const char *argv[])
}
/* a symbol specified */
symbol = kstrdup(argv[1], GFP_KERNEL);
- if (!symbol)
- return -ENOMEM;
+ if (!symbol) {
+ ret = -ENOMEM;
+ goto error;
+ }
tmp = strchr(symbol, '%');
if (tmp) {
--
Masami Hiramatsu (Google) <mhiramat@...nel.org>
Powered by blists - more mailing lists