summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Brandon Casey <casey@nrlssc.navy.mil>2008-10-08 19:07:54 -0500
committerLibravatar Shawn O. Pearce <spearce@spearce.org>2008-10-09 08:13:29 -0700
commit36e40535dcafe230a7f5ef43fea5cf67c1c58f6f (patch)
tree16778e960ebdeff1b627b5ae5d2221d94b955951
parentDo not use errno when pread() returns 0 (diff)
downloadtgif-36e40535dcafe230a7f5ef43fea5cf67c1c58f6f.tar.xz
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 <casey@nrlssc.navy.mil> Acked-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
-rw-r--r--builtin-merge.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/builtin-merge.c b/builtin-merge.c
index dcaf3681dc..d0bf1fc1ed 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);