Re: [PATCH v2] fs: forbid invalid project ID
From: Dave Chinner <david@fromorbit.com>
Date: 2021-06-28 22:34:09
Also in:
linux-f2fs-devel, linux-fsdevel, linux-xfs
From: Dave Chinner <david@fromorbit.com>
Date: 2021-06-28 22:34:09
Also in:
linux-f2fs-devel, linux-fsdevel, linux-xfs
On Mon, Jun 28, 2021 at 08:38:01AM -0400, Wang Shilong wrote:
fileattr_set_prepare() should check if project ID is valid, otherwise dqget() will return NULL for such project ID quota. Signed-off-by: Wang Shilong <redacted> --- v1->v2: try to fix in the VFS --- fs/ioctl.c | 3 +++ 1 file changed, 3 insertions(+)diff --git a/fs/ioctl.c b/fs/ioctl.c index 1e2204fa9963..5db5b218637b 100644 --- a/fs/ioctl.c +++ b/fs/ioctl.c@@ -845,6 +845,9 @@ static int fileattr_set_prepare(struct inode *inode, if (fa->fsx_cowextsize == 0) fa->fsx_xflags &= ~FS_XFLAG_COWEXTSIZE; + if (!projid_valid(KPROJIDT_INIT(fa->fsx_projid))) + return -EINVAL;
This needs to go further up in this function in the section where project IDs passed into this function are validated. Projids are only allowed to be changed when current_user_ns() == &init_user_ns, so this needs to be associated with that verification context. This check should also use make_kprojid(), please, not open code KPROJIDT_INIT. Cheers, Dave. -- Dave Chinner david@fromorbit.com