tracing/user_events: Use long vs int for atomic bit ops
authorBeau Belgrave <beaub@linux.microsoft.com>
Fri, 5 May 2023 20:58:55 +0000 (13:58 -0700)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Tue, 23 May 2023 14:40:34 +0000 (10:40 -0400)
commitee7751b564a90f337330efc1221df40647d68756
treee77511d3b75790790554f11f939b02b00ea4aa03
parent44c026a73be8038f03dbdeef028b642880cf1511
tracing/user_events: Use long vs int for atomic bit ops

Each event stores a int to track which bit to set/clear when enablement
changes. On big endian 64-bit configurations, it's possible this could
cause memory corruption when it's used for atomic bit operations.

Use unsigned long for enablement values to ensure any possible
corruption cannot occur. Downcast to int after mask for the bit target.

Link: https://lore.kernel.org/all/6f758683-4e5e-41c3-9b05-9efc703e827c@kili.mountain/
Link: https://lore.kernel.org/linux-trace-kernel/20230505205855.6407-1-beaub@linux.microsoft.com
Fixes: dcb8177c1395 ("tracing/user_events: Add ioctl for disabling addresses")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Beau Belgrave <beaub@linux.microsoft.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
kernel/trace/trace_events_user.c