reiserfs: check directory items on read from disk
authorShreyansh Chouhan <chouhan.shreyansh630@gmail.com>
Fri, 9 Jul 2021 15:29:29 +0000 (20:59 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Aug 2021 11:22:19 +0000 (13:22 +0200)
commitecd8614809eb97dc48cf70c3bebeb7ddeb08c137
treee3c03ff45fab32ba73093f5a7963ac9e999c7207
parentdbe4f82fedc6726abc2c328a0a6a777e21b16b97
reiserfs: check directory items on read from disk

[ Upstream commit 13d257503c0930010ef9eed78b689cec417ab741 ]

While verifying the leaf item that we read from the disk, reiserfs
doesn't check the directory items, this could cause a crash when we
read a directory item from the disk that has an invalid deh_location.

This patch adds a check to the directory items read from the disk that
does a bounds check on deh_location for the directory entries. Any
directory entry header with a directory entry offset greater than the
item length is considered invalid.

Link: https://lore.kernel.org/r/20210709152929.766363-1-chouhan.shreyansh630@gmail.com
Reported-by: syzbot+c31a48e6702ccb3d64c9@syzkaller.appspotmail.com
Signed-off-by: Shreyansh Chouhan <chouhan.shreyansh630@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/reiserfs/stree.c