Fix bug when using gzflush() with a very small buffer.
authortb <tb@openbsd.org>
Tue, 15 Aug 2023 12:18:46 +0000 (12:18 +0000)
committertb <tb@openbsd.org>
Tue, 15 Aug 2023 12:18:46 +0000 (12:18 +0000)
from upstream

lib/libz/gzlib.c

index 2b446c4..29fc448 100644 (file)
@@ -308,8 +308,8 @@ int ZEXPORT gzbuffer(gzFile file, unsigned size) {
     /* check and set requested size */
     if ((size << 1) < size)
         return -1;              /* need to be able to double it */
-    if (size < 2)
-        size = 2;               /* need two bytes to check magic header */
+    if (size < 8)
+        size = 8;               /* needed to behave well with flushing */
     state->want = size;
     return 0;
 }