[PATCH 1/7] erofs-utils: lib: fix `ictx` leak in the failure path
Gao Xiang <[email protected]> Tue, 30 Jun 2026 10:52:18 +0800
| Newsgroups | org.ozlabs.lists.linux-erofs |
|---|---|
| Message-ID | <[email protected]> |
Coverity-id: 647272 Signed-off-by: Gao Xiang <[email protected]> --- lib/compress.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/compress.c b/lib/compress.c index e57de425be28..f7ad5a1c6c87 100644 --- a/lib/compress.c +++ b/lib/compress.c @@ -1881,8 +1881,7 @@ void *erofs_prepare_compressed_file(struct erofs_importer *im, if (!erofs_sb_has_48bit(sbi)) { erofs_err("Unaligned compressed extents must be used with the 48bit encoded extent layout", ictx->max_compressed_extent_size); - free(ictx); - return ERR_PTR(-EINVAL); + goto err_out; } ictx->data_unaligned = true; } else { @@ -1894,7 +1893,7 @@ void *erofs_prepare_compressed_file(struct erofs_importer *im, if (ictx->max_compressed_extent_size < erofs_blksiz(sbi)) { erofs_err("Maximum compressed extent size (%u) must be at least the block size (%u)", ictx->max_compressed_extent_size, erofs_blksiz(sbi)); - return ERR_PTR(-EINVAL); + goto err_out; } } else { ictx->max_compressed_extent_size = @@ -1910,6 +1909,9 @@ void *erofs_prepare_compressed_file(struct erofs_importer *im, ictx->fragemitted = false; ictx->dedupe = false; return ictx; +err_out: + free(ictx); + return ERR_PTR(-EINVAL); } void erofs_bind_compressed_file_with_fd(struct z_erofs_compress_ictx *ictx, -- 2.43.5