From: Darrick J. Wong Date: Wed, 18 May 2022 02:48:12 +0000 (-0400) Subject: xfs_db: warn about suspicious finobt trees when metadumping X-Git-Tag: v5.18.0-rc1~30 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9b9c121a877adc88c3b95e791e88e8d54da23611;p=thirdparty%2Fxfsprogs-dev.git xfs_db: warn about suspicious finobt trees when metadumping 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 Reviewed-by: Eric Sandeen Reviewed-by: Christoph Hellwig Signed-off-by: Eric Sandeen --- diff --git a/db/metadump.c b/db/metadump.c index c6f9d382a..0d151bb82 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))