]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_repair: fix integer handling issues
authorDarrick J. Wong <darrick.wong@oracle.com>
Thu, 31 May 2018 19:09:54 +0000 (14:09 -0500)
committerEric Sandeen <sandeen@redhat.com>
Thu, 31 May 2018 19:09:54 +0000 (14:09 -0500)
When we shift sb_logblocks to the left we need to ensure that we have
enough storage space to shift correctly.  Cast logblocks to a 64-bit
type so that we don't screw up the check.

Coverity-id: 1435810
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
repair/sb.c

index ef44e39c77463dd5829ac08fe877bd0c5b38fd7c..543200f7fd233bab1962883b2fc61544c1644923 100644 (file)
@@ -313,7 +313,8 @@ verify_sb_loginfo(
        if (xfs_sb_version_hascrc(sb) &&
            (sb->sb_logblocks == 0 ||
             sb->sb_logblocks > XFS_MAX_LOG_BLOCKS ||
-            (sb->sb_logblocks << sb->sb_blocklog) > XFS_MAX_LOG_BYTES))
+            ((unsigned long long)sb->sb_logblocks << sb->sb_blocklog) >
+            XFS_MAX_LOG_BYTES))
                return false;
 
        if (sb->sb_logsunit > 1 && sb->sb_logsunit % sb->sb_blocksize)