All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.