[PATCH v3] erofs-utils: fix invalid argument type in erofs_err()

Hongzhen Luo hongzhen at linux.alibaba.com
Wed Aug 14 14:55:01 AEST 2024


Coverity-id: 502374, 502367, 502362, 502348, 502342, 502341,
	     502340, 502358

Fix several issues found by Coverity regarding "Invalid type in argument
for printf format specifier".

Signed-off-by: Hongzhen Luo <hongzhen at linux.alibaba.com>
---
v3: Fix alignment issue.
v2: https://lore.kernel.org/all/20240814033813.1605825-1-hongzhen@linux.alibaba.com/
v1: https://lore.kernel.org/all/20240813121003.780870-1-hongzhen@linux.alibaba.com/
---
 fsck/main.c     |  4 ++--
 lib/blobchunk.c |  3 ++-
 lib/compress.c  |  4 ++--
 lib/fragments.c | 10 +++++-----
 lib/super.c     |  3 ++-
 mkfs/main.c     |  2 +-
 6 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/fsck/main.c b/fsck/main.c
index 28f1e7e..89d87fb 100644
--- a/fsck/main.c
+++ b/fsck/main.c
@@ -807,8 +807,8 @@ static int erofsfsck_dirent_iter(struct erofs_dir_context *ctx)
 	curr_pos = prev_pos;
 
 	if (prev_pos + ctx->de_namelen >= PATH_MAX) {
-		erofs_err("unable to fsck since the path is too long (%u)",
-			  curr_pos + ctx->de_namelen);
+		erofs_err("unable to fsck since the path is too long (%llu)",
+			  (curr_pos + ctx->de_namelen) | 0ULL);
 		return -EOPNOTSUPP;
 	}
 
diff --git a/lib/blobchunk.c b/lib/blobchunk.c
index 2835755..7bd5590 100644
--- a/lib/blobchunk.c
+++ b/lib/blobchunk.c
@@ -95,7 +95,8 @@ static struct erofs_blobchunk *erofs_blob_getchunk(struct erofs_sb_info *sbi,
 		chunk->device_id = 0;
 	chunk->blkaddr = erofs_blknr(sbi, blkpos);
 
-	erofs_dbg("Writing chunk (%u bytes) to %u", chunksize, chunk->blkaddr);
+	erofs_dbg("Writing chunk (%llu bytes) to %llu", chunksize | 0ULL,
+		  chunk->blkaddr | 0ULL);
 	ret = fwrite(buf, chunksize, 1, blobfile);
 	if (ret == 1) {
 		padding = erofs_blkoff(sbi, chunksize);
diff --git a/lib/compress.c b/lib/compress.c
index 8655e78..17e7112 100644
--- a/lib/compress.c
+++ b/lib/compress.c
@@ -497,8 +497,8 @@ static bool z_erofs_fixup_deduped_fragment(struct z_erofs_compress_sctx *ctx,
 	inode->fragmentoff += inode->fragment_size - newsize;
 	inode->fragment_size = newsize;
 
-	erofs_dbg("Reducing fragment size to %u at %llu",
-		  inode->fragment_size, inode->fragmentoff | 0ULL);
+	erofs_dbg("Reducing fragment size to %llu at %llu",
+		  inode->fragment_size | 0ULL, inode->fragmentoff | 0ULL);
 
 	/* it's the end */
 	DBG_BUGON(ctx->tail - ctx->head + ctx->remaining != newsize);
diff --git a/lib/fragments.c b/lib/fragments.c
index 7591718..e2d3343 100644
--- a/lib/fragments.c
+++ b/lib/fragments.c
@@ -138,7 +138,7 @@ static int z_erofs_fragments_dedupe_find(struct erofs_inode *inode, int fd,
 	inode->fragment_size = deduped;
 	inode->fragmentoff = pos;
 
-	erofs_dbg("Dedupe %u tail data at %llu", inode->fragment_size,
+	erofs_dbg("Dedupe %llu tail data at %llu", inode->fragment_size | 0ULL,
 		  inode->fragmentoff | 0ULL);
 out:
 	free(data);
@@ -283,8 +283,8 @@ int z_erofs_pack_file_from_fd(struct erofs_inode *inode, int fd,
 		goto out;
 	}
 
-	erofs_dbg("Recording %u fragment data at %lu", inode->fragment_size,
-		  inode->fragmentoff);
+	erofs_dbg("Recording %llu fragment data at %llu",
+		  inode->fragment_size | 0ULL, inode->fragmentoff | 0ULL);
 
 	if (memblock)
 		rc = z_erofs_fragments_dedupe_insert(memblock,
@@ -316,8 +316,8 @@ int z_erofs_pack_fragments(struct erofs_inode *inode, void *data,
 	if (fwrite(data, len, 1, packedfile) != 1)
 		return -EIO;
 
-	erofs_dbg("Recording %u fragment data at %lu", inode->fragment_size,
-		  inode->fragmentoff);
+	erofs_dbg("Recording %llu fragment data at %llu",
+		  inode->fragment_size | 0ULL, inode->fragmentoff | 0ULL);
 
 	ret = z_erofs_fragments_dedupe_insert(data, len, inode->fragmentoff,
 					      tofcrc);
diff --git a/lib/super.c b/lib/super.c
index 32e10cd..d4cea50 100644
--- a/lib/super.c
+++ b/lib/super.c
@@ -213,7 +213,8 @@ struct erofs_buffer_head *erofs_reserve_sb(struct erofs_bufmgr *bmgr)
 
 	bh = erofs_balloc(bmgr, META, 0, 0, 0);
 	if (IS_ERR(bh)) {
-		erofs_err("failed to allocate super: %s", PTR_ERR(bh));
+		erofs_err("failed to allocate super: %s",
+			  erofs_strerror(PTR_ERR(bh)));
 		return bh;
 	}
 	bh->op = &erofs_skip_write_bhops;
diff --git a/mkfs/main.c b/mkfs/main.c
index b7129eb..1027fc6 100644
--- a/mkfs/main.c
+++ b/mkfs/main.c
@@ -274,7 +274,7 @@ static int erofs_mkfs_feat_set_fragments(bool en, const char *val,
 		u64 i = strtoull(val, &endptr, 0);
 
 		if (endptr - val != vallen) {
-			erofs_err("invalid pcluster size %s for the packed file %s", val);
+			erofs_err("invalid pcluster size %s for the packed file", val);
 			return -EINVAL;
 		}
 		pclustersize_packed = i;
-- 
2.43.5



More information about the Linux-erofs mailing list