public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Fix cryptoapi deflate not handling PAGE_SIZE chunks.
@ 2005-07-18  3:26 Nigel Cunningham
  2005-07-31  3:40 ` Herbert Xu
  0 siblings, 1 reply; 4+ messages in thread
From: Nigel Cunningham @ 2005-07-18  3:26 UTC (permalink / raw)
  To: Herbert Xu; +Cc: Linux Kernel Mailing List

Hi Herbert.

Here's a resend of a patch I'm using in Suspend2's new cryptoapi
support, which is needed for us to successfully compress pages using
deflate. It's along the lines of the existing fix in the decompression
code.

Regards,

Nigel

diff -ruNp 190-cryptoapi-deflate.patch-old/crypto/deflate.c 190-cryptoapi-deflate.patch-new/crypto/deflate.c
--- 190-cryptoapi-deflate.patch-old/crypto/deflate.c	2005-06-20 11:46:49.000000000 +1000
+++ 190-cryptoapi-deflate.patch-new/crypto/deflate.c	2005-07-04 23:14:20.000000000 +1000
@@ -143,8 +143,15 @@ static int deflate_compress(void *ctx, c
 
 	ret = zlib_deflate(stream, Z_FINISH);
 	if (ret != Z_STREAM_END) {
-		ret = -EINVAL;
-		goto out;
+	    	if (!(ret == Z_OK && !stream->avail_in && !stream->avail_out)) {
+			ret = -EINVAL;
+			goto out;
+		} else {
+			u8 zerostuff = 0;
+			stream->next_out = &zerostuff;
+			stream->avail_out = 1; 
+			ret = zlib_deflate(stream, Z_FINISH);
+		}
 	}
 	ret = 0;
 	*dlen = stream->total_out;

-- 
Evolution.
Enumerate the requirements.
Consider the interdependencies.
Calculate the probabilities.
Be amazed that people believe it happened. 


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-07-31  5:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-18  3:26 [PATCH] Fix cryptoapi deflate not handling PAGE_SIZE chunks Nigel Cunningham
2005-07-31  3:40 ` Herbert Xu
2005-07-31  5:14   ` Nigel Cunningham
2005-07-31  5:49     ` Herbert Xu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox