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>
Thu, 18 Nov 2021 13:03:51 +0000 (14:03 +0100)
commitceeb0a8a8716a1c72af3fa4d4f98c3aced32b037
tree1c73635daf2f779e9cbe68f0f86b4932e03f6340
parentbc1274df3ff418f46ffe98e452f6ff149951f53c
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