Miroslav Benes 9da2bc
From: Xiaoke Wang <xkernel.wang@foxmail.com>
Miroslav Benes 9da2bc
Date: Tue, 14 Dec 2021 09:28:02 +0800
Miroslav Benes 9da2bc
Subject: tracing/uprobes: Check the return value of kstrdup() for tu->filename
Miroslav Benes 9da2bc
Git-commit: 8c7224245557707c613f130431cafbaaa4889615
Miroslav Benes 9da2bc
Patch-mainline: v5.16 or v5.16-rc9 (next release)
Miroslav Benes 9da2bc
References: git-fixes
Miroslav Benes 9da2bc
Miroslav Benes 9da2bc
kstrdup() returns NULL when some internal memory errors happen, it is
Miroslav Benes 9da2bc
better to check the return value of it so to catch the memory error in
Miroslav Benes 9da2bc
time.
Miroslav Benes 9da2bc
Miroslav Benes 9da2bc
Link: https://lkml.kernel.org/r/tencent_3C2E330722056D7891D2C83F29C802734B06@qq.com
Miroslav Benes 9da2bc
Miroslav Benes 9da2bc
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Miroslav Benes 9da2bc
Fixes: 33ea4b24277b ("perf/core: Implement the 'perf_uprobe' PMU")
Miroslav Benes 9da2bc
Signed-off-by: Xiaoke Wang <xkernel.wang@foxmail.com>
Miroslav Benes 9da2bc
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Miroslav Benes 9da2bc
Acked-by: Miroslav Benes <mbenes@suse.cz>
Miroslav Benes 9da2bc
---
Miroslav Benes 9da2bc
 kernel/trace/trace_uprobe.c |    5 +++++
Miroslav Benes 9da2bc
 1 file changed, 5 insertions(+)
Miroslav Benes 9da2bc
Miroslav Benes 9da2bc
--- a/kernel/trace/trace_uprobe.c
Miroslav Benes 9da2bc
+++ b/kernel/trace/trace_uprobe.c
Miroslav Benes 9da2bc
@@ -1389,6 +1389,11 @@ create_local_trace_uprobe(char *name, un
Miroslav Benes 9da2bc
 	tu->path = path;
Miroslav Benes 9da2bc
 	tu->ref_ctr_offset = ref_ctr_offset;
Miroslav Benes 9da2bc
 	tu->filename = kstrdup(name, GFP_KERNEL);
Miroslav Benes 9da2bc
+	if (!tu->filename) {
Miroslav Benes 9da2bc
+		ret = -ENOMEM;
Miroslav Benes 9da2bc
+		goto error;
Miroslav Benes 9da2bc
+	}
Miroslav Benes 9da2bc
+
Miroslav Benes 9da2bc
 	init_trace_event_call(tu);
Miroslav Benes 9da2bc
 
Miroslav Benes 9da2bc
 	if (traceprobe_set_print_fmt(&tu->tp, is_ret_probe(tu)) < 0) {