diff mbox series

tracing/user_events: Handle matching arguments that is null from dyn_events

Message ID 20230529065110.303440-1-sunliming@kylinos.cn (mailing list archive)
State Accepted
Commit cfac4ed7279d056df6167bd665e460787dc9e0c4
Headers show
Series tracing/user_events: Handle matching arguments that is null from dyn_events | expand

Commit Message

sunliming May 29, 2023, 6:51 a.m. UTC
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.

Signed-off-by: sunliming <sunliming@kylinos.cn>
---
 kernel/trace/trace_events_user.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Masami Hiramatsu (Google) May 29, 2023, 8:21 a.m. UTC | #1
On Mon, 29 May 2023 14:51:10 +0800
sunliming <sunliming@kylinos.cn> wrote:

> 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.

OK, since the user_events doesn't support multi-definitions on the same name
event, this should be checked.

Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>

Thank you!

> 
> Signed-off-by: sunliming <sunliming@kylinos.cn>
> ---
>  kernel/trace/trace_events_user.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c
> index e90161294698..0d91dac206ff 100644
> --- a/kernel/trace/trace_events_user.c
> +++ b/kernel/trace/trace_events_user.c
> @@ -1712,6 +1712,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;
>  }
> -- 
> 2.25.1
>
diff mbox series

Patch

diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c
index e90161294698..0d91dac206ff 100644
--- a/kernel/trace/trace_events_user.c
+++ b/kernel/trace/trace_events_user.c
@@ -1712,6 +1712,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;
 }