threads / patch / 8306

patchfix memory leak in parse_object when check_sha1_signature fails

Subject: [PATCH] fix memory leak in parse_object when check_sha1_signature fails

## tl;dr

3 messages between May 25, 2007 and May 25, 2007. Diffs are folded; open one to read it.

replies: 2people: 3as markdown or json

Carlos Rica· May 25, 2007, 01:46 UTC · lore

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(-)
Show changes to object.c +1 −0
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· May 25, 2007, 02:09 UTC · re: Carlos Rica · lore

Re: [PATCH] fix memory leak in parse_object when check_sha1_signature fails

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· May 25, 2007, 02:38 UTC · re: Shawn O. Pearce · lore

Re: [PATCH] fix memory leak in parse_object when check_sha1_signature fails

"Shawn O. Pearce" <spearce@spearce.org> writes:
Show 11 quoted lines
> 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?

← back to recent threads