浏览代码

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"
Mészáros Mihály 7 年之前
父节点
当前提交
c8313ac68d
共有 1 个文件被更改,包括 1 次插入2 次删除
  1. 1 2
      src/apps/relay/ns_ioalib_engine_impl.c

+ 1 - 2
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