dovecot-2.2: lib-compression: Compression ostreams may have caus...

dovecot at dovecot.org dovecot at dovecot.org
Thu Jul 3 18:57:11 UTC 2014


details:   http://hg.dovecot.org/dovecot-2.2/rev/00b3aa3842b7
changeset: 17591:00b3aa3842b7
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Jul 03 21:55:31 2014 +0300
description:
lib-compression: Compression ostreams may have caused parent ostream to use too much memory.

diffstat:

 src/lib-compression/ostream-bzlib.c |  2 ++
 src/lib-compression/ostream-lzma.c  |  2 ++
 src/lib-compression/ostream-zlib.c  |  3 +++
 3 files changed, 7 insertions(+), 0 deletions(-)

diffs (37 lines):

diff -r 5740cb57d02c -r 00b3aa3842b7 src/lib-compression/ostream-bzlib.c
--- a/src/lib-compression/ostream-bzlib.c	Thu Jul 03 21:54:52 2014 +0300
+++ b/src/lib-compression/ostream-bzlib.c	Thu Jul 03 21:55:31 2014 +0300
@@ -113,6 +113,8 @@
 	if (zstream->flushed)
 		return 0;
 
+	if ((ret = o_stream_flush_parent_if_needed(&zstream->ostream)) <= 0)
+		return ret;
 	if ((ret = o_stream_zlib_send_outbuf(zstream)) <= 0)
 		return ret;
 
diff -r 5740cb57d02c -r 00b3aa3842b7 src/lib-compression/ostream-lzma.c
--- a/src/lib-compression/ostream-lzma.c	Thu Jul 03 21:54:52 2014 +0300
+++ b/src/lib-compression/ostream-lzma.c	Thu Jul 03 21:55:31 2014 +0300
@@ -119,6 +119,8 @@
 	if (zstream->flushed)
 		return 0;
 
+	if ((ret = o_stream_flush_parent_if_needed(&zstream->ostream)) <= 0)
+		return ret;
 	if ((ret = o_stream_zlib_send_outbuf(zstream)) <= 0)
 		return ret;
 
diff -r 5740cb57d02c -r 00b3aa3842b7 src/lib-compression/ostream-zlib.c
--- a/src/lib-compression/ostream-zlib.c	Thu Jul 03 21:54:52 2014 +0300
+++ b/src/lib-compression/ostream-zlib.c	Thu Jul 03 21:55:31 2014 +0300
@@ -181,6 +181,9 @@
 
 	if (zstream->flushed)
 		return 0;
+
+	if ((ret = o_stream_flush_parent_if_needed(&zstream->ostream)) <= 0)
+		return ret;
 	if (!zstream->header_sent) {
 		if (o_stream_zlib_send_gz_header(zstream) < 0)
 			return -1;


More information about the dovecot-cvs mailing list