changeset 22889:51c7b591cd20

lib-dcrypt: istream-decrypt - Read more if buffer is empty If there is no more buffered data, try to decrypt more. - Fixes Panic: file istream.c: line 192 (i_stream_read): assertion failed: (!stream->blocking) - Fixes infinite loop when stream is not blocking
author Aki Tuomi <aki.tuomi@dovecot.fi>
date Mon, 12 Mar 2018 14:48:41 +0200
parents 2934b16c4b5b
children 29cb00415262
files src/lib-dcrypt/istream-decrypt.c
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-dcrypt/istream-decrypt.c	Thu Mar 01 12:17:16 2018 +0200
+++ b/src/lib-dcrypt/istream-decrypt.c	Mon Mar 12 14:48:41 2018 +0200
@@ -671,7 +671,8 @@
 
 			bytes = new_pos - stream->pos;
 			stream->pos = new_pos;
-			return (ssize_t)bytes;
+			if (bytes > 0)
+				return (ssize_t)bytes;
 		}
 		if (dstream->finalized) {
 			/* all data decrypted */