changeset 18091:2d87ec863b76

lib-ssl-iostream: Close the plain iostreams when ssl-iostream is destroyed.
author Timo Sirainen <tss@iki.fi>
date Sat, 15 Nov 2014 00:27:27 +0200
parents 77638cc62ca8
children ef8b7e44e96c
files src/lib-ssl-iostream/iostream-openssl.c
diffstat 1 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-ssl-iostream/iostream-openssl.c	Sat Nov 15 00:14:20 2014 +0200
+++ b/src/lib-ssl-iostream/iostream-openssl.c	Sat Nov 15 00:27:27 2014 +0200
@@ -294,6 +294,10 @@
 	(void)SSL_shutdown(ssl_io->ssl);
 	(void)openssl_iostream_more(ssl_io);
 	(void)o_stream_flush(ssl_io->plain_output);
+	/* close the plain i/o streams, because their fd may be closed soon,
+	   but we may still keep this ssl-iostream referenced until later. */
+	i_stream_close(ssl_io->plain_input);
+	o_stream_close(ssl_io->plain_output);
 
 	ssl_iostream_unref(&ssl_io);
 }