]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
btrfs: Verify that every chunk has corresponding block group at mount time
authorQu Wenruo <wqu@suse.com>
Wed, 1 Aug 2018 02:37:17 +0000 (10:37 +0800)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 28 Apr 2020 18:02:34 +0000 (19:02 +0100)
commitb84f82bdb43676854de8c5196bd8738805b892ee
treec600f5adbfad4e2d912958ba6c5ed5d4c7e2ed59
parent5203a4d55c2c6a0c86a0ab21bfd071d407ca95a1
btrfs: Verify that every chunk has corresponding block group at mount time

commit 7ef49515fa6727cb4b6f2f5b0ffbc5fc20a9f8c6 upstream.

If a crafted image has missing block group items, it could cause
unexpected behavior and breaks the assumption of 1:1 chunk<->block group
mapping.

Although we have the block group -> chunk mapping check, we still need
chunk -> block group mapping check.

This patch will do extra check to ensure each chunk has its
corresponding block group.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=199847
Reported-by: Xu Wen <wen.xu@gatech.edu>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Gu Jinxiang <gujx@cn.fujitsu.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
[bwh: Backported to 4.4: adjust context]
Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
fs/btrfs/extent-tree.c