diff options
author | Qu Wenruo <wqu@suse.com> | 2018-02-08 08:59:40 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2018-03-30 22:15:54 +0200 |
commit | 2615aca92c628457fe76131a5f810720349dc4c5 (patch) | |
tree | e9721cd7e3a23903e625219a41b3df6975c01896 /check | |
parent | e875cd98e38f9fdc7f812a7575a3a2afd6b6094b (diff) |
btrfs-progs: ctree: Add extra level check for read_node_slot()
Strangely, we have level check in btrfs_print_tree() while we don't have
the same check in read_node_slot().
That's to say, for the following corruption, btrfs_search_slot() or
btrfs_next_leaf() can return invalid leaf:
Parent eb:
node XXXXXX level 1
^^^^^^^
Child should be leaf (level 0)
...
key (XXX XXX XXX) block YYYYYY
Child eb:
leaf YYYYYY level 1
^^^^^^^
Something went wrong now
And for the corrupted leaf returned, later caller can be screwed up
easily.
Reported-by: Ralph Gauges <ralphgauges@googlemail.com>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'check')
0 files changed, 0 insertions, 0 deletions