Commit Diff


commit - 812c68380e543d8814df8169aa1fb47f70e19378
commit + 8c2924d74a7af654f823d4c32c74ab7e4cf5651c
blob - 79c1220f7c69501d6047d937f5c64df6e4dfae7d
blob + b8572cfe5b35acf5d04456dc811ef5e1cf3b918d
--- libexec/got-index-pack/got-index-pack.c
+++ libexec/got-index-pack/got-index-pack.c
@@ -253,8 +253,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);