]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-ssl-iostream: Keep ssl_iostream_context referenced while it has streams
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 31 Oct 2017 16:43:22 +0000 (18:43 +0200)
committerTimo Sirainen <tss@dovecot.fi>
Mon, 6 Nov 2017 23:09:00 +0000 (01:09 +0200)
src/lib-ssl-iostream/iostream-openssl.c

index 37af544129c56b09c3d964aa8a03c069097a9034..f4a7a51a5e458033af268fe89bd489e2a8ad6795 100644 (file)
@@ -258,6 +258,7 @@ openssl_iostream_create(struct ssl_iostream_context *ctx, const char *host,
        ssl_io = i_new(struct ssl_iostream, 1);
        ssl_io->refcount = 1;
        ssl_io->ctx = ctx;
+       ssl_iostream_context_ref(ssl_io->ctx);
        ssl_io->ssl = ssl;
        ssl_io->bio_ext = bio_ext;
        ssl_io->plain_input = *input;
@@ -297,6 +298,7 @@ openssl_iostream_create(struct ssl_iostream_context *ctx, const char *host,
 
 static void openssl_iostream_free(struct ssl_iostream *ssl_io)
 {
+       ssl_iostream_context_unref(&ssl_io->ctx);
        o_stream_unref(&ssl_io->plain_output);
        i_stream_unref(&ssl_io->plain_input);
        BIO_free(ssl_io->bio_ext);