[PATCH] erofs-utils: limit pclustersize in z_erofs_fixup_deduped_fragment()

Noboru Asai asai at sijam.com
Fri Jun 2 15:20:39 AEST 2023


The variable 'ctx->pclustersize' could be larger than max pclustersize.

Signed-off-by: Noboru Asai <asai at sijam.com>
---
 lib/compress.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/compress.c b/lib/compress.c
index 2e1dfb3..e943056 100644
--- a/lib/compress.c
+++ b/lib/compress.c
@@ -359,8 +359,9 @@ static bool z_erofs_fixup_deduped_fragment(struct z_erofs_vle_compress_ctx *ctx,
 
 	/* try to fix again if it gets larger (should be rare) */
 	if (inode->fragment_size < newsize) {
-		ctx->pclustersize = roundup(newsize - inode->fragment_size,
-					    erofs_blksiz());
+		ctx->pclustersize = min(z_erofs_get_max_pclusterblks(inode) * erofs_blksiz(),
+					roundup(newsize - inode->fragment_size,
+						erofs_blksiz()));
 		return false;
 	}
 
-- 
2.40.1



More information about the Linux-erofs mailing list