]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-ssl-iostream: Avoid assert-crashing when remote disconnects during write.
authorTimo Sirainen <tss@iki.fi>
Mon, 5 Sep 2011 11:23:11 +0000 (14:23 +0300)
committerTimo Sirainen <tss@iki.fi>
Mon, 5 Sep 2011 11:23:11 +0000 (14:23 +0300)
src/lib-ssl-iostream/iostream-openssl.c

index 765bfdd6fc08b74dd8b930d69ee37f5ee5b1111b..27a1ca310fd832c07767ab740a8c6bbe5b6e7e47 100644 (file)
@@ -264,6 +264,12 @@ static bool ssl_iostream_bio_output(struct ssl_iostream *ssl_io)
                i_assert(ret == (int)bytes);
 
                sent = o_stream_send(ssl_io->plain_output, buffer, bytes);
+               if (sent < 0) {
+                       i_assert(ssl_io->plain_output->stream_errno != 0);
+                       ssl_io->ssl_output->stream_errno =
+                               ssl_io->plain_output->stream_errno;
+                       break;
+               }
                i_assert(sent == (ssize_t)bytes);
                bytes_sent = TRUE;
        }