diff options
| author | Christian Brauner <brauner@kernel.org> | 2025-11-03 15:57:38 +0100 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2025-11-05 23:11:52 +0100 |
| commit | 06765b6efc463ce4d3c0c80a3cc2c888dc902dfa (patch) | |
| tree | ddfe3e0a17a728638dc3bc03401754f50d92bcf3 | |
| parent | 2ed6a34de9851dcd4db8441a33882b168261be88 (diff) | |
trace: use override credential guard
Use override credential guards for scoped credential override with
automatic restoration on scope exit.
Link: https://patch.msgid.link/20251103-work-creds-guards-prepare_creds-v1-12-b447b82f2c9b@kernel.org
Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
| -rw-r--r-- | kernel/trace/trace_events_user.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c index 28c62149eec5..b15854c75d4f 100644 --- a/kernel/trace/trace_events_user.c +++ b/kernel/trace/trace_events_user.c @@ -1449,9 +1449,6 @@ static struct trace_event_functions user_event_funcs = { static int user_event_set_call_visible(struct user_event *user, bool visible) { - int ret; - const struct cred *old_cred; - CLASS(prepare_creds, cred)(); if (!cred) return -ENOMEM; @@ -1467,16 +1464,12 @@ static int user_event_set_call_visible(struct user_event *user, bool visible) */ cred->fsuid = GLOBAL_ROOT_UID; - old_cred = override_creds(cred); - - if (visible) - ret = trace_add_event_call(&user->call); - else - ret = trace_remove_event_call(&user->call); + scoped_with_creds(cred) { + if (visible) + return trace_add_event_call(&user->call); - revert_creds(old_cred); - - return ret; + return trace_remove_event_call(&user->call); + } } static int destroy_user_event(struct user_event *user) |
