]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: complain if we don't get nextents bmap records
authorDarrick J. Wong <darrick.wong@oracle.com>
Tue, 10 Jan 2017 02:18:49 +0000 (20:18 -0600)
committerEric Sandeen <sandeen@redhat.com>
Tue, 10 Jan 2017 02:18:49 +0000 (20:18 -0600)
Source kernel commit: 356a3225222e5bc4df88aef3419fb6424f18ab69

When reading into memory all extents of a btree-format inode fork,
complain if the number of extents we find is not the same as the number
of extents reported in the inode core.  This is needed to stop an IO
action from accessing the garbage areas of the in-core fork.

[dchinner: removed redundant assert]

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libxfs/xfs_bmap.c

index ff67dcf6a7686992915ca4f6dc6d1500ceb5fea3..8c360ca8b29bc85c600ace9cb5bea58d7043a002 100644 (file)
@@ -1368,8 +1368,9 @@ xfs_bmap_read_extents(
                        return error;
                block = XFS_BUF_TO_BLOCK(bp);
        }
+       if (i != XFS_IFORK_NEXTENTS(ip, whichfork))
+               return -EFSCORRUPTED;
        ASSERT(i == xfs_iext_count(ifp));
-       ASSERT(i == XFS_IFORK_NEXTENTS(ip, whichfork));
        XFS_BMAP_TRACE_EXLIST(ip, i, whichfork);
        return 0;
 error0: