Re: [PATCH] racing/user_events: Prevent same address and bit per process

From: Steven Rostedt
Date: Mon May 22 2023 - 10:32:36 EST



Is the subject a Freudian slip?

Added Beau. I need to add him to the maintainers file for user events ;-)

On Fri, 19 May 2023 16:10:35 +0800
sunliming <sunliming@xxxxxxxxxx> wrote:

> User processes register name_args for events. If the same name are registered
> multiple times in the same process, it can cause undefined behavior. Because
> the same name may be used for a diffrent event. If this event has the same
> format as the original event, it is impossible to distinguish the trace output
> of these two events. If the event has a different format from the original event,
> the trace output of the new event is incorrect.
>
> Return EADDRINUSE back to the user process if the same event has being registered
> in the same process.

I'll let Beau ack this or not.

-- Steve

>
> Signed-off-by: sunliming <sunliming@xxxxxxxxxx>
> ---
> kernel/trace/trace_events_user.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c
> index b1ecd7677642..4ef6bdb5c07c 100644
> --- a/kernel/trace/trace_events_user.c
> +++ b/kernel/trace/trace_events_user.c
> @@ -1996,7 +1996,7 @@ static int user_events_ref_add(struct user_event_file_info *info,
>
> for (i = 0; i < count; ++i)
> if (refs->events[i] == user)
> - return i;
> + return -EADDRINUSE;
> }
>
> size = struct_size(refs, events, count + 1);