# Re: [PATCH 3/5] get_shallow_commits: Avoid memory leak if a commit has been reached already.

5 messages from 2006-11-24 to 2006-11-25. Participants: Johannes Schindelin, Junio C Hamano, Alexandre Julliard, Anand Kumria.
Thread: https://gitlist.dev/t/43468

## Alexandre Julliard, 2006-11-24 14:58

Subject: [PATCH 3/5] get_shallow_commits: Avoid memory leak if a commit has been reached already.
Message-ID: <87slg8uc0l.fsf@wine.dyndns.org>
URL: https://gitlist.dev/e/87slg8uc0l.fsf%40wine.dyndns.org

```
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
---
 shallow.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/shallow.c b/shallow.c
index 2db1dc4..3d53d17 100644
--- a/shallow.c
+++ b/shallow.c
@@ -60,7 +60,9 @@ struct commit_list *get_shallow_commits(
 					commit = NULL;
 					continue;
 				}
-				commit->util = xcalloc(1, sizeof(int));
+				if (!commit->util)
+					commit->util = xmalloc(sizeof(int));
+				*(int *)commit->util = 0;
 				cur_depth = 0;
 			} else {
 				commit = (struct commit *)
-- 
1.4.4.1.ga335e

-- 
Alexandre Julliard

```

## Anand Kumria, 2006-11-25 17:22

Subject: Re: [PATCH 3/5] get_shallow_commits: Avoid memory leak if a commit has been reached already.
Message-ID: <ek9u4f$vmk$1@sea.gmane.org>
URL: https://gitlist.dev/e/ek9u4f%24vmk%241%40sea.gmane.org
In-Reply-To: <87slg8uc0l.fsf@wine.dyndns.org>

```
On Fri, 24 Nov 2006 15:58:50 +0100, Alexandre Julliard wrote:

> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
> ---
>  shallow.c |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
> 
> diff --git a/shallow.c b/shallow.c
> index 2db1dc4..3d53d17 100644
> --- a/shallow.c
> +++ b/shallow.c
> @@ -60,7 +60,9 @@ struct commit_list *get_shallow_commits(
>  					commit = NULL;
>  					continue;
>  				}
> -				commit->util = xcalloc(1, sizeof(int));
> +				if (!commit->util)
> +					commit->util = xmalloc(sizeof(int));
> +				*(int *)commit->util = 0;
>  				cur_depth = 0;

Hi,

Any reason you didn't do:

if (!commit->util)
	commit->util = xcalloc(1, sizeof(int));

That would seem to be the same.

Regards,
Anand

```

## Johannes Schindelin, 2006-11-25 18:49

Subject: Re: [PATCH 3/5] get_shallow_commits: Avoid memory leak if a commit has been reached already.
Message-ID: <Pine.LNX.4.63.0611251947310.30004@wbgn013.biozentrum.uni-wuerzburg.de>
URL: https://gitlist.dev/e/Pine.LNX.4.63.0611251947310.30004%40wbgn013.biozentrum.uni-wuerzburg.de
In-Reply-To: <ek9u4f$vmk$1@sea.gmane.org>

```
Hi,

On Sat, 25 Nov 2006, Anand Kumria wrote:

> Any reason you didn't do:
> 
> if (!commit->util)
> 	commit->util = xcalloc(1, sizeof(int));

xmalloc() does not initialize the memory. Therefore, it is usually 
preferred if you initialize the memory yourself. In this case, the memory 
is initialized to 0, even if it is not allocated.

It may be a minor performance issue, but it is a good habit to use xcalloc 
only if it is needed.

Ciao,
Dscho

```

## Junio C Hamano, 2006-11-25 19:44

Subject: Re: [PATCH 3/5] get_shallow_commits: Avoid memory leak if a commit has been reached already.
Message-ID: <7v1wnr2twq.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v1wnr2twq.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <Pine.LNX.4.63.0611251947310.30004@wbgn013.biozentrum.uni-wuerzburg.de>

```
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> On Sat, 25 Nov 2006, Anand Kumria wrote:
>
>> Any reason you didn't do:
>> 
>> if (!commit->util)
>> 	commit->util = xcalloc(1, sizeof(int));
>
> xmalloc() does not initialize the memory. Therefore, it is usually 
> preferred if you initialize the memory yourself. In this case, the memory 
> is initialized to 0, even if it is not allocated.
>
> It may be a minor performance issue, but it is a good habit to use xcalloc 
> only if it is needed.

I think you could pretend the commit->util field to be of some
kind of int and avoid the allocation altogether ;-).

```

## Johannes Schindelin, 2006-11-25 23:36

Subject: Re: [PATCH 3/5] get_shallow_commits: Avoid memory leak if a commit has been reached already.
Message-ID: <Pine.LNX.4.63.0611260033410.30004@wbgn013.biozentrum.uni-wuerzburg.de>
URL: https://gitlist.dev/e/Pine.LNX.4.63.0611260033410.30004%40wbgn013.biozentrum.uni-wuerzburg.de
In-Reply-To: <7v1wnr2twq.fsf@assigned-by-dhcp.cox.net>

```
Hi,

On Sat, 25 Nov 2006, Junio C Hamano wrote:

> I think you could pretend the commit->util field to be of some kind of 
> int and avoid the allocation altogether ;-).

I actually thought about that, and found it too dangerous. But of course, 
since we need at least a 32-bit architecture, chances are very high that a 
pointer is castable to an int.

Ciao,
Dscho

```
