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>
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)