Commit Diff


commit - 07965a0dfc49b585f5d2d6c2f8f645dfe3ef0d8c
commit + 8347f8e796a6f59deaf6f75275ae6e3d730fce9f
blob - 5c97abbfa18aa695ecad63480898a59770e74e9f
blob + bd07835c365de5a12c8b254209ac1fbe27a312a9
--- libexec/got-index-pack/got-index-pack.c
+++ libexec/got-index-pack/got-index-pack.c
@@ -255,8 +255,11 @@ read_packed_object(struct got_pack *pack, struct got_i
 		SHA1Update(&ctx, header, headerlen);
 		if (obj->size > GOT_DELTA_RESULT_SIZE_CACHED_MAX) {
 			err = read_file_sha1(&ctx, tmpfile, datalen);
-			if (err)
+			if (err) {
+				free(header);
+				free(data);
 				break;
+			}
 		} else
 			SHA1Update(&ctx, data, datalen);
 		SHA1Final(obj->id.sha1, &ctx);