If qpl_init_job() fails, the previously allocated job memory
is not freed before returning. Fix this by adding a `free(job)`
call in the error path.

Signed-off-by: Nithurshen <[email protected]>
---
 lib/decompress.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/decompress.c b/lib/decompress.c
index 3e7a173..e7ec83e 100644
--- a/lib/decompress.c
+++ b/lib/decompress.c
@@ -149,6 +149,7 @@ static qpl_job *z_erofs_qpl_get_job(void)
                status = qpl_init_job(execution_path, (qpl_job *)job->job);
                if (status != QPL_STS_OK) {
                        erofs_err("failed to initialize job: %d", status);
+                       free(job);
                        return ERR_PTR(-EOPNOTSUPP);
                }
                erofs_atomic_dec_return(&z_erofs_qpl_reclaim_quot);
-- 
2.51.0


Reply via email to