From d9aa090f713ecf3393c4e68d951a03ccba4a7073 Mon Sep 17 00:00:00 2001 From: Wang Shilong Date: Mon, 28 Sep 2020 10:27:12 +0800 Subject: [PATCH] e2fsck: fix memory leaks with pfsck enabled valgrind detected two memory leaks: 1) quota context is not released after merging. 2) @refcount_orig should be released Signed-off-by: Wang Shilong Reviewed-by: Andreas Dilger Signed-off-by: Theodore Ts'o --- e2fsck/e2fsck.c | 4 ++++ e2fsck/pass1.c | 1 + 2 files changed, 5 insertions(+) diff --git a/e2fsck/e2fsck.c b/e2fsck/e2fsck.c index ca314778c..b70aca21e 100644 --- a/e2fsck/e2fsck.c +++ b/e2fsck/e2fsck.c @@ -102,6 +102,10 @@ errcode_t e2fsck_reset_context(e2fsck_t ctx) ea_refcount_free(ctx->refcount_extra); ctx->refcount_extra = 0; } + if (ctx->refcount_orig) { + ea_refcount_free(ctx->refcount_orig); + ctx->refcount_orig = 0; + } if (ctx->ea_block_quota_blocks) { ea_refcount_free(ctx->ea_block_quota_blocks); ctx->ea_block_quota_blocks = 0; diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index 4d9cd78a4..0c8bd72f9 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -3111,6 +3111,7 @@ static int e2fsck_pass1_thread_join(e2fsck_t global_ctx, e2fsck_t thread_ctx) fclose(thread_ctx->problem_logf); } + quota_release_context(&thread_ctx->qctx); /* * @block_metadata_map and @block_dup_map are * shared, so we don't free them. -- 2.47.2