diff options
-rw-r--r-- | common/iobuf.c | 8 | ||||
-rw-r--r-- | g10/compress-bz2.c | 3 | ||||
-rw-r--r-- | g10/compress.c | 3 |
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; |