mirror of
https://github.com/kdave/btrfs-progs
synced 2024-12-26 08:02:21 +00:00
btrfs-progs: Check the csum tree node before go through the csum tree
[BUG] Some fsfuzzed btrfs image will cause btrfsck segfault. [REPRODUCER] Run btrfsck on a csum tree block corrupted image. [REASON] check_csums() function call btrfs_search_slot() on csum_tree but doesn't check whether the csum_tree contains a valid extent_buffer, which causes the segfault. [FIX] Check the csum_root->node before any search. Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
parent
3fce2fa9a1
commit
2c1b155988
@ -3867,6 +3867,10 @@ static int check_csums(struct btrfs_root *root)
|
||||
unsigned long leaf_offset;
|
||||
|
||||
root = root->fs_info->csum_root;
|
||||
if (!extent_buffer_uptodate(root->node)) {
|
||||
fprintf(stderr, "No valid csum tree found\n");
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
key.objectid = BTRFS_EXTENT_CSUM_OBJECTID;
|
||||
key.type = BTRFS_EXTENT_CSUM_KEY;
|
||||
|
Loading…
Reference in New Issue
Block a user