[PATCH maint] builtin-merge.c: fix memory under-allocation
- From
Brandon Casey <casey@nrlssc.navy.mil>
- Date
- Oct 9, 2008, 00:07 UTC
- Message-ID
- <ZuhLzndR5Uvj7-_NyasP-FHF3AqTyLx-0sjNHMd0BC3LXC8LdLqBeQ@cipher.nrlssc.navy.mil>
While we're at it, change the allocation to reference the variable it is allocating memory for to try to prevent a similar mistake if the type is changed in the future.
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> ---
This causes segfault on IRIX64. I guess the irix compiler doesn't over-allocate memory as aggressively as gcc.
-brandon
builtin-merge.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/builtin-merge.c b/builtin-merge.c index dcaf368..d0bf1fc 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);
-- 1.6.0.2.446.ge243d