From 88a89f8617bea22b9d1cca1e59c35f1e3a1f1bf1 Mon Sep 17 00:00:00 2001 From: Hajimu UMEMOTO Date: Sun, 12 May 2002 14:12:30 +0000 Subject: [PATCH] Recent zlib does not like Z_FLUSH at the end of inflate(). Reported by: quak@mydiax.ch Obtained from: KAME MFC after: 2 days and approved by re --- sys/netinet6/ipcomp_core.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sys/netinet6/ipcomp_core.c b/sys/netinet6/ipcomp_core.c index bf12545ae786..62af1bc6398f 100644 --- a/sys/netinet6/ipcomp_core.c +++ b/sys/netinet6/ipcomp_core.c @@ -252,14 +252,17 @@ do { \ MOREBLOCK(); } - zerror = mode ? inflate(&zs, Z_FINISH) + zerror = mode ? inflate(&zs, Z_SYNC_FLUSH) : deflate(&zs, Z_FINISH); if (zerror == Z_STREAM_END) break; - else if (zerror == Z_OK) - ; /* once more. */ - else { + else if (zerror == Z_OK) { + if (mode && zs.avail_out != 0) + goto terminate; + else + ; /* once more. */ + } else { if (zs.msg) { ipseclog((LOG_ERR, "ipcomp_%scompress: " "%sflate(Z_FINISH): %s\n",