mirror of https://github.com/torvalds/linux.git
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>
This commit is contained in:
parent
f119feaa06
commit
c3076d146e
|
|
@ -283,15 +283,13 @@ ssize_t backing_file_splice_read(struct file *in, struct kiocb *iocb,
|
||||||
unsigned int flags,
|
unsigned int flags,
|
||||||
struct backing_file_ctx *ctx)
|
struct backing_file_ctx *ctx)
|
||||||
{
|
{
|
||||||
const struct cred *old_cred;
|
|
||||||
ssize_t ret;
|
ssize_t ret;
|
||||||
|
|
||||||
if (WARN_ON_ONCE(!(in->f_mode & FMODE_BACKING)))
|
if (WARN_ON_ONCE(!(in->f_mode & FMODE_BACKING)))
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
|
||||||
old_cred = override_creds(ctx->cred);
|
scoped_with_creds(ctx->cred)
|
||||||
ret = vfs_splice_read(in, &iocb->ki_pos, pipe, len, flags);
|
ret = vfs_splice_read(in, &iocb->ki_pos, pipe, len, flags);
|
||||||
revert_creds(old_cred);
|
|
||||||
|
|
||||||
if (ctx->accessed)
|
if (ctx->accessed)
|
||||||
ctx->accessed(iocb->ki_filp);
|
ctx->accessed(iocb->ki_filp);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue