Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 May 2002 20:48:45 +0900
From:      Hajimu UMEMOTO <ume@mahoroba.org>
To:        quak@mydiax.ch
Cc:        freebsd-security@FreeBSD.org
Subject:   Re: IPSEC: is ipcomp broken in 4.5-stable ?
Message-ID:  <yge4rhda8o2.wl@mille.mahoroba.org>
In-Reply-To: <200205121006.g4CA6FM01637@dubb05h07-0.dplanet.ch>
References:  <200205121006.g4CA6FM01637@dubb05h07-0.dplanet.ch>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

>>>>> On Sun, 12 May 2002 12:06:15 +0200
>>>>> quak@mydiax.ch said:

quak> ipcomp_decompress: inflate(Z_FINISH): unknown error (-2) and transfer will stall for 3-6 seconds, the proceed again.

It seems it was broken by recent zlib change.  Does this patch work
for you?

Index: sys/netinet6/ipcomp_core.c
diff -u sys/netinet6/ipcomp_core.c.orig sys/netinet6/ipcomp_core.c
--- sys/netinet6/ipcomp_core.c.orig	Sun May  5 04:33:23 2002
+++ sys/netinet6/ipcomp_core.c	Sun May 12 20:41:58 2002
@@ -252,14 +252,17 @@
 			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",

--
Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan
ume@mahoroba.org  ume@bisd.hitachi.co.jp  ume@{,jp.}FreeBSD.org
http://www.imasy.org/~ume/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-security" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?yge4rhda8o2.wl>