diff options
| author | Christian Brauner <brauner@kernel.org> | 2025-11-03 12:26:53 +0100 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2025-11-04 12:36:36 +0100 |
| commit | c3076d146e312af1ee2eff0287e298cf20774b39 (patch) | |
| tree | 494655c0b3e77c817c0870d27c13ce65c99edfcb /fs/backing-file.c | |
| parent | f119feaa06586aed78b98b13ac9bcfac942c583e (diff) | |
| download | linux-c3076d146e312af1ee2eff0287e298cf20774b39.tar.gz | |
backing-file: use credential guards for splice read
Use credential guards for scoped credential override with automatic
restoration on scope exit.
Link: https://patch.msgid.link/20251103-work-creds-guards-simple-v1-5-a3e156839e7f@kernel.org
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'fs/backing-file.c')
| -rw-r--r-- | fs/backing-file.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/backing-file.c b/fs/backing-file.c index 2ba0f3c7f203b0..4d4edf906ef34a 100644 --- a/fs/backing-file.c +++ b/fs/backing-file.c @@ -283,15 +283,13 @@ ssize_t backing_file_splice_read(struct file *in, struct kiocb *iocb, unsigned int flags, struct backing_file_ctx *ctx) { - const struct cred *old_cred; ssize_t ret; if (WARN_ON_ONCE(!(in->f_mode & FMODE_BACKING))) return -EIO; - old_cred = override_creds(ctx->cred); - ret = vfs_splice_read(in, &iocb->ki_pos, pipe, len, flags); - revert_creds(old_cred); + scoped_with_creds(ctx->cred) + ret = vfs_splice_read(in, &iocb->ki_pos, pipe, len, flags); if (ctx->accessed) ctx->accessed(iocb->ki_filp); |
