Commit 228de124 authored by Darrick J. Wong's avatar Darrick J. Wong

xfs: dabtree scrub needs to range-check level

Make sure scrub's dabtree iterator function checks that we're not
going deeper in the stack than our cursor permits.
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
parent 6958d11f
...@@ -574,6 +574,11 @@ xchk_da_btree( ...@@ -574,6 +574,11 @@ xchk_da_btree(
/* Drill another level deeper. */ /* Drill another level deeper. */
blkno = be32_to_cpu(key->before); blkno = be32_to_cpu(key->before);
level++; level++;
if (level >= XFS_DA_NODE_MAXDEPTH) {
/* Too deep! */
xchk_da_set_corrupt(&ds, level - 1);
break;
}
ds.tree_level--; ds.tree_level--;
error = xchk_da_btree_block(&ds, level, blkno); error = xchk_da_btree_block(&ds, level, blkno);
if (error) if (error)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment