]> git.ipfire.org Git - thirdparty/git.git/commitdiff
reftable/writer: fix memory leak when `writer_index_hash()` fails
authorLidong Yan <502024330056@smail.nju.edu.cn>
Mon, 12 May 2025 12:49:04 +0000 (12:49 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 12 May 2025 16:19:50 +0000 (09:19 -0700)
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>
reftable/writer.c

index d71a56e8fc4f27abb95a3793b4c9cd746051bde9..5de684b36ff257ffe590088f1e87fd7b0a043ff2 100644 (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 {