]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
tracing/kprobes: Fix to free objects when failed to copy a symbol
authorMasami Hiramatsu (Google) <mhiramat@kernel.org>
Thu, 9 Jan 2025 14:29:37 +0000 (23:29 +0900)
committerMasami Hiramatsu (Google) <mhiramat@kernel.org>
Thu, 9 Jan 2025 23:57:18 +0000 (08:57 +0900)
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@kernel.org>
Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
kernel/trace/trace_kprobe.c

index 935a886af40c908b28f7ab70ac3c23ad2fb53866..0642ea17484908b0fb52cff9d89d9330bd67186a 100644 (file)
@@ -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) {