Commit Diff


commit - aa6c0b5105c8829f3ab30f081fa2d3d68ac674d1
commit + b1317e77b872eb5ef148f76b5b63d358cc868a75
blob - fedfa0d5e172423890f0065b514ed61be068af7b
blob + b39b11252e18b180de363de7f831b1a8087e69db
--- lib/pack.c
+++ lib/pack.c
@@ -95,9 +95,10 @@ got_packidx_init_hdr(struct got_packidx *p, int verify
 			goto done;
 		}
 		n = read(p->fd, h->magic, sizeof(*h->magic));
-		if (n < 0)
+		if (n < 0) {
 			err = got_error_from_errno("read");
-		else if (n != sizeof(*h->magic)) {
+			goto done;
+		} else if (n != sizeof(*h->magic)) {
 			err = got_error(GOT_ERR_BAD_PACKIDX);
 			goto done;
 		}