From c8313ac68dd9f8114fb50e380c07460f340f9cc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9sz=C3=A1ros=20Mih=C3=A1ly?= Date: Mon, 10 Sep 2018 15:41:14 +0200 Subject: [PATCH] fix: double free ssl crash AFAIU Openssl 1.1 SSL_set0_rbio() calls BIO_free_ all automatically.. "On calling this function, any existing rbio that was previously set will also be freed via a call to BIO_free_all" --- src/apps/relay/ns_ioalib_engine_impl.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/apps/relay/ns_ioalib_engine_impl.c b/src/apps/relay/ns_ioalib_engine_impl.c index 03413b4d..02eba0a8 100644 --- a/src/apps/relay/ns_ioalib_engine_impl.c +++ b/src/apps/relay/ns_ioalib_engine_impl.c @@ -1920,10 +1920,9 @@ int ssl_read(evutil_socket_t fd, SSL* ssl, ioa_network_buffer_handle nbh, int ve if(ret>0) { ioa_network_buffer_add_offset_size(nbh, (u16bits)buf_size, 0, (size_t)ret); } - - BIO_free(rbio); #if OPENSSL_VERSION_NUMBER < 0x10100000L ssl->rbio = NULL; + BIO_free(rbio); #else SSL_set0_rbio(ssl,NULL); #endif