quota: check block number when reading the block in quota file
authorZhang Yi <yi.zhang@huawei.com>
Fri, 8 Oct 2021 09:38:20 +0000 (17:38 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 26 Nov 2021 10:48:26 +0000 (11:48 +0100)
commitf7dd331a896700728492e02c20a69e53221cd7a4
tree3f35ec2c4c2be69dd3c50170cc53b3870ef9e32b
parent3f2410ffd75073157fa0fa0639060c966fcc4267
quota: check block number when reading the block in quota file

commit 9bf3d20331295b1ecb81f4ed9ef358c51699a050 upstream.

The block number in the quota tree on disk should be smaller than the
v2_disk_dqinfo.dqi_blocks. If the quota file was corrupted, we may be
allocating an 'allocated' block and that would lead to a loop in a tree,
which will probably trigger oops later. This patch adds a check for the
block number in the quota tree to prevent such potential issue.

Link: https://lore.kernel.org/r/20211008093821.1001186-2-yi.zhang@huawei.com
Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
Cc: stable@kernel.org
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/quota/quota_tree.c