Commit Diff


commit - 21002b1b278e14573f85a3ec87c2aa5b8da47f49
commit + a3287e9971f6990ab19426fccf0b41a9b6bc4b68
blob - 15eea55419c93fd724e16e8904ae2506a727a5e2
blob + 01e7893cec3468e0e1ae5f8b42784f825b1ef92d
--- lib/fetch.c
+++ lib/fetch.c
@@ -401,13 +401,17 @@ got_fetch_pack(struct got_object_id **pack_hash, struc
 		}
 		nobj = be32toh(pack_hdr.nobjects);
 		if (nobj == 0 &&
-		    packfile_size > ssizeof(pack_hdr) + SHA1_DIGEST_LENGTH)
-			return got_error_msg(GOT_ERR_BAD_PACKFILE,
+		    packfile_size > ssizeof(pack_hdr) + SHA1_DIGEST_LENGTH) {
+			err = got_error_msg(GOT_ERR_BAD_PACKFILE,
 			    "bad pack file with zero objects");
-		if (nobj != 0 &&
-		    packfile_size <= ssizeof(pack_hdr) + SHA1_DIGEST_LENGTH)
-			return got_error_msg(GOT_ERR_BAD_PACKFILE,
+			goto done;
+		}
+		if (nobj != 0 &&
+		    packfile_size <= ssizeof(pack_hdr) + SHA1_DIGEST_LENGTH) {
+			err = got_error_msg(GOT_ERR_BAD_PACKFILE,
 			    "empty pack file with non-zero object count");
+			goto done;
+		}
 	}
 
 	/*