xfs: fix integer overflow in xrep_bmap
authorDarrick J. Wong <djwong@kernel.org>
Tue, 8 Oct 2024 04:07:08 +0000 (21:07 -0700)
committerCarlos Maiolino <cem@kernel.org>
Fri, 11 Oct 2024 10:32:48 +0000 (12:32 +0200)
The variable declaration in this function predates the merge of the
nrext64 (aka 64-bit extent counters) feature, which means that the
variable declaration type is insufficient to avoid an integer overflow.
Fix that by redeclaring the variable to be xfs_extnum_t.

Coverity-id: 1630958
Fixes: 8f71bede8efd ("xfs: repair inode fork block mapping data structures")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
fs/xfs/scrub/bmap_repair.c

index 49dc38acc66bf8000447de0e067720490379db98..4505f4829d53f1f4e4024f533f45a71d90265ca8 100644 (file)
@@ -801,7 +801,7 @@ xrep_bmap(
 {
        struct xrep_bmap        *rb;
        char                    *descr;
-       unsigned int            max_bmbt_recs;
+       xfs_extnum_t            max_bmbt_recs;
        bool                    large_extcount;
        int                     error = 0;