Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tracing: React to error return from traceprobe_parse_event_name()

The function traceprobe_parse_event_name() may set the first two function
arguments to a non-null value and still return -EINVAL to indicate an
unsuccessful completion of the function. Hence, it is not sufficient to
just check the result of the two function arguments for being not null,
but the return value also needs to be checked.

Commit 95c104c378dc ("tracing: Auto generate event name when creating a
group of events") changed the error-return-value checking of the second
traceprobe_parse_event_name() invocation in __trace_eprobe_create() and
removed checking the return value to jump to the error handling case.

Reinstate using the return value in the error-return-value checking.

Link: https://lkml.kernel.org/r/20220811071734.20700-1-lukas.bulwahn@gmail.com

Fixes: 95c104c378dc ("tracing: Auto generate event name when creating a group of events")
Acked-by: Linyu Yuan <quic_linyyuan@quicinc.com>
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>

authored by

Lukas Bulwahn and committed by
Steven Rostedt (Google)
d8a64313 f1a15b97

+1 -1
+1 -1
kernel/trace/trace_eprobe.c
··· 883 883 trace_probe_log_set_index(1); 884 884 sys_event = argv[1]; 885 885 ret = traceprobe_parse_event_name(&sys_event, &sys_name, buf2, 0); 886 - if (!sys_event || !sys_name) { 886 + if (ret || !sys_event || !sys_name) { 887 887 trace_probe_log_err(0, NO_EVENT_INFO); 888 888 goto parse_error; 889 889 }