Commit Diff


commit - 7b1f04a64481938488cb6031cc765f593cee5aed
commit + 686d24ff4f3d55e87e66b7ea741be79aadcfa5b0
blob - 3986b17e44eecf61ea0e972208e12e87099dfe66
blob + 1dfd4a723e97bc08d71f8821edc65f5a1aa93b88
--- lib/inflate.c
+++ lib/inflate.c
@@ -146,7 +146,7 @@ got_inflate_read_fd(struct got_inflate_buf *zb, int fd
 		ret = inflate(z, Z_SYNC_FLUSH);
 	} while (ret == Z_OK && z->avail_out > 0);
 
-	if (ret == Z_OK) {
+	if (ret == Z_OK || ret == Z_BUF_ERROR) {
 		zb->flags |= GOT_INFLATE_F_HAVE_MORE;
 	} else {
 		if (ret != Z_STREAM_END)
@@ -188,7 +188,7 @@ got_inflate_read_mmap(struct got_inflate_buf *zb, uint
 		*consumed += z->total_in - last_total_in;
 	} while (ret == Z_OK && z->avail_out > 0);
 
-	if (ret == Z_OK) {
+	if (ret == Z_OK || ret == Z_BUF_ERROR) {
 		zb->flags |= GOT_INFLATE_F_HAVE_MORE;
 	} else {
 		if (ret != Z_STREAM_END)