[PATCH v3] erofs-utils: decompress: fix QPL job leak on error paths
Vi-shub
smsharma3121 at gmail.com
Fri Mar 20 12:59:47 AEDT 2026
Two early returns in z_erofs_decompress_qpl() after a successful
z_erofs_qpl_get_job() skip the cleanup, leaking the job handle.
Use goto out_inflate_end instead.
Signed-off-by: Shubham Sharma <smsharma3121 at gmail.com>
---
lib/decompress.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/lib/decompress.c b/lib/decompress.c
index e7ec83e..eb696d3 100644
--- a/lib/decompress.c
+++ b/lib/decompress.c
@@ -196,13 +196,17 @@ static int z_erofs_decompress_qpl(struct z_erofs_decompress_req *rq)
return PTR_ERR(job);
inputmargin = z_erofs_fixup_insize(src, rq->inputsize);
- if (inputmargin >= rq->inputsize)
- return -EFSCORRUPTED;
+ if (inputmargin >= rq->inputsize) {
+ ret = -EFSCORRUPTED;
+ goto out_inflate_end;
+ }
if (rq->decodedskip) {
buff = malloc(rq->decodedlength);
- if (!buff)
- return -ENOMEM;
+ if (!buff) {
+ ret = -ENOMEM;
+ goto out_inflate_end;
+ }
dest = buff;
}
--
2.39.1.windows.1
More information about the Linux-erofs
mailing list