From: Brandon Casey Date: Thu, 9 Oct 2008 00:07:54 +0000 (-0500) Subject: builtin-merge.c: allocate correct amount of memory X-Git-Tag: v1.6.0.3~28 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=36e40535dcafe230a7f5ef43fea5cf67c1c58f6f;p=git.git builtin-merge.c: allocate correct amount of memory Fix two memory allocation errors which allocate space for a pointer rather than enough space for the structure itself. This: struct commit_list *parent = xmalloc(sizeof(struct commit_list *)); should have been this: struct commit_list *parent = xmalloc(sizeof(struct commit_list)); But while we're at it, change the allocation to reference the variable it is allocating memory for to try to prevent a similar mistake, for example if the type is changed, in the future. Signed-off-by: Brandon Casey Acked-by: Miklos Vajna Signed-off-by: Shawn O. Pearce --- diff --git a/builtin-merge.c b/builtin-merge.c index dcaf3681d..d0bf1fc1e 100644 --- a/builtin-merge.c +++ b/builtin-merge.c @@ -651,12 +651,12 @@ static void add_strategies(const char *string, unsigned attr) static int merge_trivial(void) { unsigned char result_tree[20], result_commit[20]; - struct commit_list *parent = xmalloc(sizeof(struct commit_list *)); + struct commit_list *parent = xmalloc(sizeof(*parent)); write_tree_trivial(result_tree); printf("Wonderful.\n"); parent->item = lookup_commit(head); - parent->next = xmalloc(sizeof(struct commit_list *)); + parent->next = xmalloc(sizeof(*parent->next)); parent->next->item = remoteheads->item; parent->next->next = NULL; commit_tree(merge_msg.buf, result_tree, parent, result_commit);