From: Darrick J. Wong <djwong@xxxxxxxxxx> We warn about suspicious roots and btree heights before metadumping the inode btree, so do the same for the free inode btree. Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> --- db/metadump.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/db/metadump.c b/db/metadump.c index c6f9d382..0d151bb8 100644 --- a/db/metadump.c +++ b/db/metadump.c @@ -2664,6 +2664,21 @@ copy_inodes( root = be32_to_cpu(agi->agi_free_root); levels = be32_to_cpu(agi->agi_free_level); + if (root == 0 || root > mp->m_sb.sb_agblocks) { + if (show_warnings) + print_warning("invalid block number (%u) in " + "finobt root in agi %u", root, + agno); + return 1; + } + + if (levels > M_IGEO(mp)->inobt_maxlevels) { + if (show_warnings) + print_warning("invalid level (%u) in finobt " + "root in agi %u", levels, agno); + return 1; + } + finobt = 1; if (!scan_btree(agno, root, levels, TYP_FINOBT, &finobt, scanfunc_ino))