* [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).