[PATCH v3 2/2] reftable/writer: fix memory leak when `writer_index_hash()` fails
- From
Lidong Yan via GitGitGadget <gitgitgadget@gmail.com>
- Date
- May 12, 2025, 12:49 UTC
- Message-ID
- <64f778ce2ba6a3010d284daeb09ed2d591b54565.1747054145.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1958.v3.git.git.1747054145.gitgitgadget@gmail.com>
From: Lidong Yan <502024330056@smail.nju.edu.cn>
In reftable/writer.c:writer_index_hash(), if `reftable_buf_add` failed, key allocated by `reftable_malloc` will not be insert into `obj_index_tree` thus leaks. Simple add reftable_free(key) will solve this problem.
Signed-off-by: Lidong Yan <502024330056@smail.nju.edu.cn> --- reftable/writer.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/reftable/writer.c b/reftable/writer.c index 3ceb37428887..3b4ebdd6dced 100644 --- a/reftable/writer.c +++ b/reftable/writer.c @@ -258,8 +258,10 @@ static int writer_index_hash(struct reftable_writer *w, struct reftable_buf *has reftable_buf_reset(&key->hash); err = reftable_buf_add(&key->hash, hash->buf, hash->len); - if (err < 0) + if (err < 0) { + reftable_free(key); return err; + } tree_insert(&w->obj_index_tree, key, &obj_index_tree_node_compare); } else {
-- gitgitgadget