Octopus merge of the following five patches.
[gitweb.git] / object.c
index ca4af8fa2dc0672b92310a3ebdd4d14bf070dd69..c1f22910a2e207997fbc627ee8150a81b813c3b0 100644 (file)
--- a/object.c
+++ b/object.c
@@ -107,11 +107,12 @@ struct object *parse_object(unsigned char *sha1)
                char type[100];
                unsigned long size;
                void *buffer = unpack_sha1_file(map, mapsize, type, &size);
+               munmap(map, mapsize);
                if (!buffer)
                        return NULL;
                if (check_sha1_signature(sha1, buffer, size, type) < 0)
                        printf("sha1 mismatch %s\n", sha1_to_hex(sha1));
-               munmap(map, mapsize);
+               free(buffer);
                if (!strcmp(type, "blob")) {
                        struct blob *ret = lookup_blob(sha1);
                        parse_blob(ret);