# [PATCH] fix memory leak in parse_object when check_sha1_signature fails

3 messages from 2007-05-25 to 2007-05-25. Participants: Carlos Rica, Shawn O. Pearce, Junio C Hamano.
Thread: https://gitlist.dev/t/8306

## Carlos Rica, 2007-05-25 01:46

Subject: [PATCH] fix memory leak in parse_object when check_sha1_signature fails
Message-ID: <1b46aba20705241846u615785eeh7c3ebeaf840b2180@mail.gmail.com>
URL: https://gitlist.dev/e/1b46aba20705241846u615785eeh7c3ebeaf840b2180%40mail.gmail.com

```
When check_sha1_signature fails, program is not terminated:
it prints an error message and returns NULL, so the
buffer returned by read_sha1_file should be freed before.

Signed-off-by: Carlos Rica <jasampler@gmail.com>
---
 object.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/object.c b/object.c
index 78a44a6..ccd7dd7 100644
--- a/object.c
+++ b/object.c
@@ -185,6 +185,7 @@ struct object *parse_object(const unsigned char *sha1)
 	if (buffer) {
 		struct object *obj;
 		if (check_sha1_signature(sha1, buffer, size, typename(type)) < 0) {
+			free(buffer);
 			error("sha1 mismatch %s\n", sha1_to_hex(sha1));
 			return NULL;
 		}
-- 
1.5.0

```

## Shawn O. Pearce, 2007-05-25 02:09

Subject: Re: [PATCH] fix memory leak in parse_object when check_sha1_signature fails
Message-ID: <20070525020939.GT28023@spearce.org>
URL: https://gitlist.dev/e/20070525020939.GT28023%40spearce.org
In-Reply-To: <1b46aba20705241846u615785eeh7c3ebeaf840b2180@mail.gmail.com>

```
Carlos Rica <jasampler@gmail.com> wrote:
> When check_sha1_signature fails, program is not terminated:
> it prints an error message and returns NULL, so the
> buffer returned by read_sha1_file should be freed before.
...
> 		if (check_sha1_signature(sha1, buffer, size, typename(type)) 
> 		< 0) {
...

gmail strikes again.  The above line is wrapped, which means your
patch is whitespace damaged and won't apply properly.

-- 
Shawn.

```

## Junio C Hamano, 2007-05-25 02:38

Subject: Re: [PATCH] fix memory leak in parse_object when check_sha1_signature fails
Message-ID: <7virahtyo9.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7virahtyo9.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <20070525020939.GT28023@spearce.org>

```
"Shawn O. Pearce" <spearce@spearce.org> writes:

> Carlos Rica <jasampler@gmail.com> wrote:
>> When check_sha1_signature fails, program is not terminated:
>> it prints an error message and returns NULL, so the
>> buffer returned by read_sha1_file should be freed before.
> ...
>> 		if (check_sha1_signature(sha1, buffer, size, typename(type)) 
>> 		< 0) {
> ...
>
> gmail strikes again.  The above line is wrapped, which means your
> patch is whitespace damaged and won't apply properly.

That is only between your eyes, imagination and your MUA (hint:
"format: flowed").

For applying after saving it in mbox it does not pose a problem,
but it _does_ affect people who want to comment on the patch
while in MUA.

Is there a way to turn that "format: flawed" off?

```
