From: Eric Sandeen Date: Wed, 2 Sep 2015 22:40:03 +0000 (+1000) Subject: xfs_repair: set args.geo in dir2_kill_block X-Git-Tag: v4.2.0~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fe0591e7ad48fc9e459ef62052be19a3bed61d5a;p=thirdparty%2Fxfsprogs-dev.git xfs_repair: set args.geo in dir2_kill_block This path in xfs_repair: dir2_kill_block libxfs_da_shrink_inode xfs_dir2_shrink_inode xfs_dir2_db_to_da segfaults, because dir2_kill_block() does not initialize args.geo, and a null geometry winds up in xfs_dir2_db_to_da(), which dereferences it. Fix that. Signed-off-by: Eric Sandeen Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner --- diff --git a/repair/phase6.c b/repair/phase6.c index 04638c203..7e275cdab 100644 --- a/repair/phase6.c +++ b/repair/phase6.c @@ -1444,6 +1444,7 @@ dir2_kill_block( args.firstblock = &firstblock; args.flist = &flist; args.whichfork = XFS_DATA_FORK; + args.geo = mp->m_dir_geo; if (da_bno >= mp->m_dir_geo->leafblk && da_bno < mp->m_dir_geo->freeblk) error = -libxfs_da_shrink_inode(&args, da_bno, bp); else