mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 23:52:08 +02:00
ocfs2: add inline inode consistency check to ocfs2_validate_inode_block()
In 'ocfs2_validate_inode_block()', add an extra check whether an inode with inline data (i.e. self-contained) has no clusters, thus preventing an invalid inode from being passed to 'ocfs2_evict_inode()' and below. Link: https://lkml.kernel.org/r/20251023141650.417129-1-dmantipov@yandex.ru Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Reported-by: syzbot+c16daba279a1161acfb0@syzkaller.appspotmail.com Closes: https://syzkaller.appspot.com/bug?extid=c16daba279a1161acfb0 Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com> Cc: Joseph Qi <jiangqi903@gmail.com> Cc: Mark Fasheh <mark@fasheh.com> Cc: Joel Becker <jlbec@evilplan.org> Cc: Junxiao Bi <junxiao.bi@oracle.com> Cc: Changwei Ge <gechangwei@live.cn> Cc: Jun Piao <piaojun@huawei.com> Cc: Heming Zhao <heming.zhao@suse.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
6e89373cec
commit
a2b1c419ff
|
|
@ -1505,6 +1505,14 @@ int ocfs2_validate_inode_block(struct super_block *sb,
|
|||
goto bail;
|
||||
}
|
||||
|
||||
if ((le16_to_cpu(di->i_dyn_features) & OCFS2_INLINE_DATA_FL) &&
|
||||
le32_to_cpu(di->i_clusters)) {
|
||||
rc = ocfs2_error(sb, "Invalid dinode %llu: %u clusters\n",
|
||||
(unsigned long long)bh->b_blocknr,
|
||||
le32_to_cpu(di->i_clusters));
|
||||
goto bail;
|
||||
}
|
||||
|
||||
rc = 0;
|
||||
|
||||
bail:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user