fix memory leak in parse_object when check_sha1_signature fails
authorCarlos Rica <jasampler@gmail.com>
Fri, 25 May 2007 01:46:22 +0000 (03:46 +0200)
committerJunio C Hamano <junkio@cox.net>
Fri, 25 May 2007 01:56:06 +0000 (18:56 -0700)
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>
Signed-off-by: Junio C Hamano <junkio@cox.net>
object.c

index 78a44a6..ccd7dd7 100644 (file)
--- 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;
                }