aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLidong Yan <502024330056@smail.nju.edu.cn>2025-05-12 12:49:04 +0000
committerJunio C Hamano <gitster@pobox.com>2025-05-12 09:19:50 -0700
commit91db6c735dd1da215ae5e12506139f0aba5e426b (patch)
tree0134752d8016bcbe6cb3fa394b8c92814bda0a41
parentc8e752eaeff299012b582507fed078a7cecbb7a3 (diff)
downloadgit-91db6c735dd1da215ae5e12506139f0aba5e426b.tar.gz
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>
-rw-r--r--reftable/writer.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/reftable/writer.c b/reftable/writer.c
index d71a56e8fc..5de684b36f 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 {