Commit Diff


commit - 930d88fe56d55ca98351b3109796db11af42e7b1
commit + 98ef866ec0f35402a87bb0e50550f3ead86cc117
blob - c5cbff1e5a5e603896233f86eb2b3dfd1c8a49d1
blob + b677fb09af65bc9d83f1689fa013d968f88a89a6
--- lib/fetch.c
+++ lib/fetch.c
@@ -396,13 +396,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;
+		}
 	}
 
 	/*