diff options
| author | Qu Wenruo <[email protected]> | 2018-07-03 09:10:05 +0000 |
|---|---|---|
| committer | David Sterba <[email protected]> | 2018-08-06 11:12:41 +0000 |
| commit | fce466eab7ac6baa9d2dcd88abcf945be3d4a089 (patch) | |
| tree | b1dfc302a5c93cf38ab82bf11cdabc2b47dc9f91 /fs/btrfs/dev-replace.c | |
| parent | btrfs: annotate unlikely branches after V0 extent type removal (diff) | |
| download | kernel-fce466eab7ac6baa9d2dcd88abcf945be3d4a089.tar.gz kernel-fce466eab7ac6baa9d2dcd88abcf945be3d4a089.zip | |
btrfs: tree-checker: Verify block_group_item
A crafted image with invalid block group items could make free space cache
code to cause panic.
We could detect such invalid block group item by checking:
1) Item size
Known fixed value.
2) Block group size (key.offset)
We have an upper limit on block group item (10G)
3) Chunk objectid
Known fixed value.
4) Type
Only 4 valid type values, DATA, METADATA, SYSTEM and DATA|METADATA.
No more than 1 bit set for profile type.
5) Used space
No more than the block group size.
This should allow btrfs to detect and refuse to mount the crafted image.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=199849
Reported-by: Xu Wen <[email protected]>
Signed-off-by: Qu Wenruo <[email protected]>
Reviewed-by: Gu Jinxiang <[email protected]>
Reviewed-by: Nikolay Borisov <[email protected]>
Tested-by: Gu Jinxiang <[email protected]>
Reviewed-by: David Sterba <[email protected]>
Signed-off-by: David Sterba <[email protected]>
Diffstat (limited to 'fs/btrfs/dev-replace.c')
0 files changed, 0 insertions, 0 deletions
