diff options
author | Junio C Hamano <gitster@pobox.com> | 2019-09-30 13:19:25 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-09-30 13:19:25 +0900 |
commit | 74a39b9bcc9086cf4405aa532bb6e02e3436d5e4 (patch) | |
tree | 80d32ddef577b66630c76ae215167358b25d9a41 /notes.c | |
parent | Merge branch 'tb/banned-vsprintf-namefix' (diff) | |
parent | notes: avoid potential use-after-free during insertion (diff) | |
download | tgif-74a39b9bcc9086cf4405aa532bb6e02e3436d5e4.tar.xz |
Merge branch 'mh/notes-duplicate-entries'
A few implementation fixes in the notes API.
* mh/notes-duplicate-entries:
notes: avoid potential use-after-free during insertion
notes: avoid leaking duplicate entries
Diffstat (limited to 'notes.c')
-rw-r--r-- | notes.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -269,8 +269,10 @@ static int note_tree_insert(struct notes_tree *t, struct int_node *tree, case PTR_TYPE_NOTE: if (oideq(&l->key_oid, &entry->key_oid)) { /* 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; + } ret = combine_notes(&l->val_oid, &entry->val_oid); @@ -458,7 +460,7 @@ static void load_subtree(struct notes_tree *t, struct leaf_node *subtree, die("Failed to load %s %s into notes tree " "from %s", type == PTR_TYPE_NOTE ? "note" : "subtree", - oid_to_hex(&l->key_oid), t->ref); + oid_to_hex(&object_oid), t->ref); continue; |