]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libblkid: exfs: avoid 32-bit overflow in rextsize validation
authorKarel Zak <kzak@redhat.com>
Wed, 15 Apr 2026 18:38:08 +0000 (20:38 +0200)
committerKarel Zak <kzak@redhat.com>
Thu, 23 Apr 2026 12:07:45 +0000 (14:07 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
libblkid/src/superblocks/exfs.c

index 0a169bdea81f0b63c1c50ae84b66f8e8d9aa7931..5192df6d17bb2e525c60b2f438edfe33b9f14431 100644 (file)
@@ -146,8 +146,8 @@ static int exfs_verify_sb(const struct exfs_super_block *ondisk)
            sbp->sb_inodelog > EXFS_DINODE_MAX_LOG                      ||
            sbp->sb_inodesize != (1 << sbp->sb_inodelog)                ||
            (sbp->sb_blocklog - sbp->sb_inodelog != sbp->sb_inopblog)   ||
-           (sbp->sb_rextsize * sbp->sb_blocksize > EXFS_MAX_RTEXTSIZE) ||
-           (sbp->sb_rextsize * sbp->sb_blocksize < EXFS_MIN_RTEXTSIZE) ||
+           ((uint64_t) sbp->sb_rextsize * sbp->sb_blocksize > EXFS_MAX_RTEXTSIZE)      ||
+           ((uint64_t) sbp->sb_rextsize * sbp->sb_blocksize < EXFS_MIN_RTEXTSIZE)      ||
            (sbp->sb_imax_pct > 100 /* zero sb_imax_pct is valid */)    ||
            sbp->sb_dblocks == 0                                        ||
            sbp->sb_dblocks > EXFS_MAX_DBLOCKS(sbp)                     ||