]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
trace: use override credential guard
authorChristian Brauner <brauner@kernel.org>
Mon, 3 Nov 2025 14:57:38 +0000 (15:57 +0100)
committerChristian Brauner <brauner@kernel.org>
Wed, 5 Nov 2025 22:11:52 +0000 (23:11 +0100)
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>
kernel/trace/trace_events_user.c

index 28c62149eec52212819637c2ed64819630f4369d..b15854c75d4fbd28ef12da218b933de7437d3384 100644 (file)
@@ -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)