mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
fanotify: sanitize handle_type values when reporting fid
[ Upstream commit 8631e01c2c5d1fe6705bcc0d733a0b7a17d3daac ]
Unlike file_handle, type and len of struct fanotify_fh are u8.
Traditionally, filesystem return handle_type < 0xff, but there
is no enforecement for that in vfs.
Add a sanity check in fanotify to avoid truncating handle_type
if its value is > 0xff.
Fixes: 7cdafe6cc4 ("exportfs: check for error return value from exportfs_encode_*()")
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://patch.msgid.link/20250627104835.184495-1-amir73il@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
e8b4c9e60a
commit
45338af03f
@@ -445,7 +445,13 @@ static int fanotify_encode_fh(struct fanotify_fh *fh, struct inode *inode,
|
||||
dwords = fh_len >> 2;
|
||||
type = exportfs_encode_fid(inode, buf, &dwords);
|
||||
err = -EINVAL;
|
||||
if (type <= 0 || type == FILEID_INVALID || fh_len != dwords << 2)
|
||||
/*
|
||||
* Unlike file_handle, type and len of struct fanotify_fh are u8.
|
||||
* Traditionally, filesystem return handle_type < 0xff, but there
|
||||
* is no enforecement for that in vfs.
|
||||
*/
|
||||
BUILD_BUG_ON(MAX_HANDLE_SZ > 0xff || FILEID_INVALID > 0xff);
|
||||
if (type <= 0 || type >= FILEID_INVALID || fh_len != dwords << 2)
|
||||
goto out_err;
|
||||
|
||||
fh->type = type;
|
||||
|
||||
Reference in New Issue
Block a user