diff options
| author | Lidong Yan <502024330056@smail.nju.edu.cn> | 2025-05-12 12:49:04 +0000 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-05-12 09:19:50 -0700 |
| commit | 91db6c735dd1da215ae5e12506139f0aba5e426b (patch) | |
| tree | 0134752d8016bcbe6cb3fa394b8c92814bda0a41 | |
| parent | c8e752eaeff299012b582507fed078a7cecbb7a3 (diff) | |
| download | git-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.c | 4 |
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 { |
