]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
unix: don't copy creds
authorChristian Brauner <brauner@kernel.org>
Sun, 2 Nov 2025 23:12:47 +0000 (00:12 +0100)
committerChristian Brauner <brauner@kernel.org>
Tue, 4 Nov 2025 11:36:21 +0000 (12:36 +0100)
No need to copy kernel credentials.

Link: https://patch.msgid.link/20251103-work-creds-init_cred-v1-8-cb3ec8711a6a@kernel.org
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Christian Brauner <brauner@kernel.org>
net/unix/af_unix.c

index 768098dec2310008632558ae928703b37c3cc8ef..68c94f49f7b52f49f1d75573a5347be3ea4b6005 100644 (file)
@@ -1210,25 +1210,16 @@ static struct sock *unix_find_bsd(struct sockaddr_un *sunaddr, int addr_len,
        unix_mkname_bsd(sunaddr, addr_len);
 
        if (flags & SOCK_COREDUMP) {
-               const struct cred *cred;
-               struct cred *kcred;
                struct path root;
 
-               kcred = prepare_kernel_cred(&init_task);
-               if (!kcred) {
-                       err = -ENOMEM;
-                       goto fail;
-               }
-
                task_lock(&init_task);
                get_fs_root(init_task.fs, &root);
                task_unlock(&init_task);
 
-               cred = override_creds(kcred);
-               err = vfs_path_lookup(root.dentry, root.mnt, sunaddr->sun_path,
-                                     LOOKUP_BENEATH | LOOKUP_NO_SYMLINKS |
-                                     LOOKUP_NO_MAGICLINKS, &path);
-               put_cred(revert_creds(cred));
+               scoped_with_kernel_creds()
+                       err = vfs_path_lookup(root.dentry, root.mnt, sunaddr->sun_path,
+                                             LOOKUP_BENEATH | LOOKUP_NO_SYMLINKS |
+                                             LOOKUP_NO_MAGICLINKS, &path);
                path_put(&root);
                if (err)
                        goto fail;