commit - d0f3be7ced58c524baf1ac738b44c04317bcb757
commit + 56866f4a1fa810c53b06c97db0f3db3888de1ff7
blob - e3b651dca5e235020e2814ac50e46f03139a6c9a
blob + b1f7520044fe4677b1abf79fb72406632d489757
--- lib/object.c
+++ lib/object.c
if (obj->flags & GOT_OBJ_FLAG_PACKED) {
(*blob)->read_buf = calloc(1, blocksize);
- if ((*blob)->read_buf == NULL)
+ if ((*blob)->read_buf == NULL) {
+ free(*blob);
+ *blob = NULL;
return got_error(GOT_ERR_NO_MEM);
+ }
err = got_packfile_extract_object(&((*blob)->f), obj, repo);
- if (err)
+ if (err) {
+ free((*blob)->read_buf);
+ free(*blob);
+ *blob = NULL;
return err;
+ }
} else {
err = open_loose_object(&((*blob)->f), obj, repo);
if (err) {
if (err != NULL) {
fclose((*blob)->f);
free(*blob);
+ *blob = NULL;
return err;
}