notes: avoid leaking duplicate entries

When add_note is called multiple times with the same key/value pair, the
leaf_node it creates is leaked by notes_tree_insert.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Mike Hommey 2019-08-25 14:18:18 +09:00 коммит произвёл Junio C Hamano
Родитель 75b2f01a0f
Коммит 779ad6641b
1 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -269,8 +269,10 @@ static int note_tree_insert(struct notes_tree *t, struct int_node *tree,
case PTR_TYPE_NOTE: case PTR_TYPE_NOTE:
if (oideq(&l->key_oid, &entry->key_oid)) { if (oideq(&l->key_oid, &entry->key_oid)) {
/* skip concatenation if l == entry */ /* skip concatenation if l == entry */
if (oideq(&l->val_oid, &entry->val_oid)) if (oideq(&l->val_oid, &entry->val_oid)) {
free(entry);
return 0; return 0;
}
ret = combine_notes(&l->val_oid, ret = combine_notes(&l->val_oid,
&entry->val_oid); &entry->val_oid);