]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
tracing: tprobe-events: Fix a memory leak when tprobe with $retval
authorMasami Hiramatsu (Google) <mhiramat@kernel.org>
Wed, 26 Feb 2025 06:18:46 +0000 (15:18 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Mar 2025 12:01:49 +0000 (13:01 +0100)
commit ac965d7d88fc36fb42e3d50225c0a44dd8326da4 upstream.

Fix a memory leak when a tprobe is defined with $retval. This
combination is not allowed, but the parse_symbol_and_return() does
not free the *symbol which should not be used if it returns the error.
Thus, it leaks the *symbol memory in that error path.

Link: https://lore.kernel.org/all/174055072650.4079315.3063014346697447838.stgit@mhiramat.tok.corp.google.com/
Fixes: ce51e6153f77 ("tracing: fprobe-event: Fix to check tracepoint event and return")
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/trace/trace_fprobe.c

index c62d1629cffecd72f01b54f8586b7b02ed671a5d..db897992c29e3c9cc5846b162f48bc1aa0c317a3 100644 (file)
@@ -1025,6 +1025,8 @@ static int parse_symbol_and_return(int argc, const char *argv[],
                        if (is_tracepoint) {
                                trace_probe_log_set_index(i);
                                trace_probe_log_err(tmp - argv[i], RETVAL_ON_PROBE);
+                               kfree(*symbol);
+                               *symbol = NULL;
                                return -EINVAL;
                        }
                        *is_return = true;