git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH maint] builtin-merge.c: fix memory under-allocation
@ 2008-10-09  0:07 Brandon Casey
  2008-10-09  0:17 ` Miklos Vajna
  0 siblings, 1 reply; 7+ messages in thread
From: Brandon Casey @ 2008-10-09  0:07 UTC (permalink / raw)
  To: Shawn O. Pearce; +Cc: Git Mailing List

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

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH maint] builtin-merge.c: fix memory under-allocation
  2008-10-09  0:07 [PATCH maint] builtin-merge.c: fix memory under-allocation Brandon Casey
@ 2008-10-09  0:17 ` Miklos Vajna
  2008-10-09  0:27   ` Brandon Casey
  0 siblings, 1 reply; 7+ messages in thread
From: Miklos Vajna @ 2008-10-09  0:17 UTC (permalink / raw)
  To: Brandon Casey; +Cc: Shawn O. Pearce, Git Mailing List

[-- Attachment #1: Type: text/plain, Size: 373 bytes --]

On Wed, Oct 08, 2008 at 07:07:54PM -0500, Brandon Casey <casey@nrlssc.navy.mil> wrote:
> 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.

If this is really a problem, then I think it would be good to mention
this in Documentation/CodingGuidelines.

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH maint] builtin-merge.c: fix memory under-allocation
  2008-10-09  0:17 ` Miklos Vajna
@ 2008-10-09  0:27   ` Brandon Casey
  2008-10-09 11:12     ` Junio C Hamano
  0 siblings, 1 reply; 7+ messages in thread
From: Brandon Casey @ 2008-10-09  0:27 UTC (permalink / raw)
  To: Miklos Vajna; +Cc: Shawn O. Pearce, Git Mailing List

Miklos Vajna wrote:
> On Wed, Oct 08, 2008 at 07:07:54PM -0500, Brandon Casey <casey@nrlssc.navy.mil> wrote:
>> 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.
> 
> If this is really a problem, then I think it would be good to mention
> this in Documentation/CodingGuidelines.

That's fine. Though I didn't mean to imply that the memory under-allocation
was caused by a change in variable type in this case. Re-reading my commit
message, maybe it sounds like that.

  Something like this sometimes happens:

-    struct a_struct *foo = xmalloc(sizeof(struct a_struct));
+    struct a_bigr_struct *foo = xmalloc(sizeof(struct a_struct));

  which would be avoided if we had started with:

     struct a_struct *foo = xmalloc(sizeof(*foo));

-brandon

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH maint] builtin-merge.c: fix memory under-allocation
  2008-10-09  0:27   ` Brandon Casey
@ 2008-10-09 11:12     ` Junio C Hamano
  2008-10-09 14:15       ` Brandon Casey
  0 siblings, 1 reply; 7+ messages in thread
From: Junio C Hamano @ 2008-10-09 11:12 UTC (permalink / raw)
  To: Brandon Casey; +Cc: Miklos Vajna, Shawn O. Pearce, Git Mailing List

Brandon Casey <casey@nrlssc.navy.mil> writes:

> Miklos Vajna wrote:
>> On Wed, Oct 08, 2008 at 07:07:54PM -0500, Brandon Casey <casey@nrlssc.navy.mil> wrote:
>>> 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.
>> 
>> If this is really a problem, then I think it would be good to mention
>> this in Documentation/CodingGuidelines.
>
> That's fine. Though I didn't mean to imply that the memory under-allocation
> was caused by a change in variable type in this case. Re-reading my commit
> message, maybe it sounds like that.

Yeah, it does.  I was scratching my head and had to read the patch three
times until I got it (yes, I am especially slower than usual today, as the
reason I am reading mails right now is because I am jetlagged and cannot
sleep).

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH maint] builtin-merge.c: fix memory under-allocation
  2008-10-09 11:12     ` Junio C Hamano
@ 2008-10-09 14:15       ` Brandon Casey
  2008-10-09 14:49         ` Miklos Vajna
  2008-10-09 15:13         ` Shawn O. Pearce
  0 siblings, 2 replies; 7+ messages in thread
From: Brandon Casey @ 2008-10-09 14:15 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Miklos Vajna, Shawn O. Pearce, Git Mailing List

Junio C Hamano wrote:
> Brandon Casey <casey@nrlssc.navy.mil> writes:
>> I didn't mean to imply that the memory under-allocation
>> was caused by a change in variable type in this case. Re-reading my commit
>> message, maybe it sounds like that.
> 
> Yeah, it does.  I was scratching my head and had to read the patch three
> times until I got it (yes, I am especially slower than usual today, as the
> reason I am reading mails right now is because I am jetlagged and cannot
> sleep).

If it's not too late, maybe this would make a better commit message:

--->8---
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>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH maint] builtin-merge.c: fix memory under-allocation
  2008-10-09 14:15       ` Brandon Casey
@ 2008-10-09 14:49         ` Miklos Vajna
  2008-10-09 15:13         ` Shawn O. Pearce
  1 sibling, 0 replies; 7+ messages in thread
From: Miklos Vajna @ 2008-10-09 14:49 UTC (permalink / raw)
  To: Brandon Casey; +Cc: Junio C Hamano, Shawn O. Pearce, Git Mailing List

[-- Attachment #1: Type: text/plain, Size: 337 bytes --]

On Thu, Oct 09, 2008 at 09:15:02AM -0500, Brandon Casey <casey@nrlssc.navy.mil> wrote:
> Fix two memory allocation errors which allocate space for a pointer rather
> than enough space for the structure itself.

Aah, I see it now. I thought first that it was just a variable->type
change.

Acked-by: Miklos Vajna <vmiklos@frugalware.org>

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH maint] builtin-merge.c: fix memory under-allocation
  2008-10-09 14:15       ` Brandon Casey
  2008-10-09 14:49         ` Miklos Vajna
@ 2008-10-09 15:13         ` Shawn O. Pearce
  1 sibling, 0 replies; 7+ messages in thread
From: Shawn O. Pearce @ 2008-10-09 15:13 UTC (permalink / raw)
  To: Brandon Casey; +Cc: Junio C Hamano, Miklos Vajna, Git Mailing List

Brandon Casey <casey@nrlssc.navy.mil> wrote:
> Junio C Hamano wrote:
> > Brandon Casey <casey@nrlssc.navy.mil> writes:
> >> I didn't mean to imply that the memory under-allocation
> >> was caused by a change in variable type in this case. Re-reading my commit
> >> message, maybe it sounds like that.
> > 
> > Yeah, it does.  I was scratching my head and had to read the patch three
> > times until I got it (yes, I am especially slower than usual today, as the
> > reason I am reading mails right now is because I am jetlagged and cannot
> > sleep).
> 
> If it's not too late, maybe this would make a better commit message:

Nope, I didn't get around to the patch until now.  Better message
is being used...  ;-)

Thanks everyone.
 
> --->8---
> 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>

-- 
Shawn.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2008-10-09 15:14 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-09  0:07 [PATCH maint] builtin-merge.c: fix memory under-allocation Brandon Casey
2008-10-09  0:17 ` Miklos Vajna
2008-10-09  0:27   ` Brandon Casey
2008-10-09 11:12     ` Junio C Hamano
2008-10-09 14:15       ` Brandon Casey
2008-10-09 14:49         ` Miklos Vajna
2008-10-09 15:13         ` Shawn O. Pearce

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).