summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2011-11-17 02:25:06 +0100
committerJunio C Hamano <gitster@pobox.com>2011-11-16 18:00:56 -0800
commit74b531f65feaa09b5c3963f788b437a368933730 (patch)
tree07615b226575941dee43fdcaba7a3fe7bc80c400
parent0925ce4d49ef8352617e8f56231bd36802a2f138 (diff)
downloadgit-74b531f65feaa09b5c3963f788b437a368933730.tar.gz
mailmap: xcalloc mailmap_infoml/mailmap
This is to avoid reaching free of uninitialized members. With an invalid .mailmap (and perhaps in other cases), it can reach free(mi->name) with garbage for example. Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--mailmap.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/mailmap.c b/mailmap.c
index f12bb45a3f..4892d49734 100644
--- a/mailmap.c
+++ b/mailmap.c
@@ -61,8 +61,7 @@ static void add_mapping(struct string_list *map,
} else {
/* create mailmap entry */
struct string_list_item *item = string_list_insert_at_index(index, old_email, map);
- item->util = xmalloc(sizeof(struct mailmap_entry));
- memset(item->util, 0, sizeof(struct mailmap_entry));
+ item->util = xcalloc(1, sizeof(struct mailmap_entry));
((struct mailmap_entry *)item->util)->namemap.strdup_strings = 1;
}
me = (struct mailmap_entry *)map->items[index].util;
@@ -77,7 +76,7 @@ static void add_mapping(struct string_list *map,
if (new_email)
me->email = xstrdup(new_email);
} else {
- struct mailmap_info *mi = xmalloc(sizeof(struct mailmap_info));
+ struct mailmap_info *mi = xcalloc(1, sizeof(struct mailmap_info));
debug_mm("mailmap: adding (complex) entry for %s at index %d\n", old_email, index);
if (new_name)
mi->name = xstrdup(new_name);