On Wed 30-04-25 09:13:01, Zhang Yi wrote: > From: Zhang Yi <yi.zhang@xxxxxxxxxx> > > The inode i_size cannot be larger than maxbytes, check it while loading > inode from the disk. > > Signed-off-by: Zhang Yi <yi.zhang@xxxxxxxxxx> Looks good. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/ext4/inode.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index 9f32af1241ff..2bd2a4f4d9d7 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -4916,7 +4916,8 @@ struct inode *__ext4_iget(struct super_block *sb, unsigned long ino, > ei->i_file_acl |= > ((__u64)le16_to_cpu(raw_inode->i_file_acl_high)) << 32; > inode->i_size = ext4_isize(sb, raw_inode); > - if ((size = i_size_read(inode)) < 0) { > + size = i_size_read(inode); > + if (size < 0 || size > ext4_get_maxbytes(inode)) { > ext4_error_inode(inode, function, line, 0, > "iget: bad i_size value: %lld", size); > ret = -EFSCORRUPTED; > -- > 2.46.1 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR