erofs-utils: lib: fix two integer handling issues
authorGao Xiang <hsiangkao@linux.alibaba.com>
Sat, 5 Apr 2025 18:57:07 +0000 (02:57 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Sat, 5 Apr 2025 19:29:34 +0000 (03:29 +0800)
Coverity-id: 548918
Coverity-id: 548919
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Link: https://lore.kernel.org/r/20250405185707.3202298-4-hsiangkao@linux.alibaba.com
lib/compress.c

index a7d5e5382eb69662b9588aaf5583bb9ae021e69b..9f71022bcc2e4122111f0347603cf2722c527d33 100644 (file)
@@ -1169,7 +1169,7 @@ int erofs_commit_compressed_file(struct z_erofs_compress_ictx *ictx,
 
        /* fall back to no compression mode */
        DBG_BUGON(pstart < (!!inode->idata_size) << bbits);
-       ptotal -= (!!inode->idata_size) << bbits;
+       ptotal -= (u64)(!!inode->idata_size) << bbits;
 
        compressmeta = z_erofs_write_indexes(ictx);
        if (!compressmeta) {
@@ -1687,7 +1687,7 @@ int erofs_write_compressed_file(struct z_erofs_compress_ictx *ictx)
                ret = PTR_ERR(bh);
                goto err_free_idata;
        }
-       pstart = erofs_mapbh(NULL, bh->block) << sbi->blkszbits;
+       pstart = erofs_pos(sbi, erofs_mapbh(NULL, bh->block));
 
        ictx->seg_num = 1;
        sctx = (struct z_erofs_compress_sctx) {