]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_repair: treat zero da btree pointers as corruption
authorDarrick J. Wong <darrick.wong@oracle.com>
Wed, 23 May 2018 21:30:48 +0000 (16:30 -0500)
committerEric Sandeen <sandeen@redhat.com>
Wed, 23 May 2018 21:30:48 +0000 (16:30 -0500)
If a da btree pointer is zero (i.e. the beginning of the fork) report
this as a corrupt tree to the caller instead of telling it that
everything is good.  Fixes assertion errors when fuzzing
nbtree[0].before to zero in xfs/394.

[sandeen: tweak comment above change for clarity]

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
repair/dir2.c

index 73dff902e8a7b48eba0e7ac5e56593d2b45912ae..94dd649b0401ad17c1c1768ed93ad45fb301e72b 100644 (file)
@@ -1235,11 +1235,11 @@ process_node_dir2(
                return 1;
 
        /*
-        * Skip directories with a root marked XFS_DIR2_LEAFN_MAGIC
+        * Directories with a root marked XFS_DIR2_LEAFN_MAGIC are corrupt
         */
        if (bno == 0) {
-               release_da_cursor(mp, &da_cursor, 0);
-               return 0;
+               err_release_da_cursor(mp, &da_cursor, 0);
+               return 1;
        } else {
                /*
                 * Now pass cursor and bno into leaf-block processing routine.