reftable/writer: fix memory leak when writer_index_hash() fails

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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Lidong Yan
2025-05-12 12:49:04 +00:00
committed by Junio C Hamano
parent c8e752eaef
commit 91db6c735d

View File

@@ -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 {