aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/iobuf.c8
-rw-r--r--g10/compress-bz2.c3
-rw-r--r--g10/compress.c3
3 files changed, 6 insertions, 8 deletions
diff --git a/common/iobuf.c b/common/iobuf.c
index bde6a5ccc..8ec4c86c0 100644
--- a/common/iobuf.c
+++ b/common/iobuf.c
@@ -2090,14 +2090,6 @@ filter_flush (iobuf_t a)
external_used = 0;
}
- if (src_len == 0)
- {
- if (DBG_IOBUF)
- log_debug ("filter_flush, nothing to flush%s\n",
- external_used ? " (external buffer)" : "");
- return 0;
- }
-
len = src_len;
rc = a->filter (a->filter_ov, IOBUFCTRL_FLUSH, a->chain, src_buf, &len);
if (!rc && len != src_len)
diff --git a/g10/compress-bz2.c b/g10/compress-bz2.c
index 45aa40dfc..2c3b86f8f 100644
--- a/g10/compress-bz2.c
+++ b/g10/compress-bz2.c
@@ -66,6 +66,9 @@ do_compress(compress_filter_context_t *zfx, bz_stream *bzs, int flush, IOBUF a)
int zrc;
unsigned n;
+ if (flush == BZ_RUN && bzs->avail_in == 0)
+ return 0;
+
do
{
bzs->next_out = zfx->outbuf;
diff --git a/g10/compress.c b/g10/compress.c
index e7a6f2b11..777ef47fb 100644
--- a/g10/compress.c
+++ b/g10/compress.c
@@ -100,6 +100,9 @@ do_compress( compress_filter_context_t *zfx, z_stream *zs, int flush, IOBUF a )
int zrc;
unsigned n;
+ if (flush == Z_NO_FLUSH && zs->avail_in == 0)
+ return 0;
+
do {
zs->next_out = BYTEF_CAST (zfx->outbuf);
zs->avail_out = zfx->outbufsize;