tracing/user_events: Handle matching arguments that is null from dyn_events
authorsunliming <sunliming@kylinos.cn>
Mon, 29 May 2023 06:51:10 +0000 (14:51 +0800)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Wed, 14 Jun 2023 16:41:52 +0000 (12:41 -0400)
When A registering user event from dyn_events has no argments, it will pass the
matching check, regardless of whether there is a user event with the same name
and arguments. Add the matching check when the arguments of registering user
event is null.

Link: https://lore.kernel.org/linux-trace-kernel/20230529065110.303440-1-sunliming@kylinos.cn
Signed-off-by: sunliming <sunliming@kylinos.cn>
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
kernel/trace/trace_events_user.c

index 37a38496a6be995c3f4d0e6fdcb4cf242a7eb0c9..afe61dc865436af089ce2c0c089e5a1c86e94401 100644 (file)
@@ -1745,6 +1745,8 @@ static bool user_event_match(const char *system, const char *event,
 
        if (match && argc > 0)
                match = user_fields_match(user, argc, argv);
+       else if (match && argc == 0)
+               match = list_empty(&user->fields);
 
        return match;
 }