Hello, when I call `BIO_free(a)' all memory used by this BIO should be freed. With the "socket connect" BIO this seems not to work as expected: static int conn_free(BIO *a) { BIO_CONNECT *data; if (a == NULL) return(0); data=(BIO_CONNECT *)a->ptr; if (a->shutdown) { conn_close_socket(a); BIO_CONNECT_free(data); a->ptr=NULL; a->flags=0; a->init=0; } return(1); } If `a->shutdown' is not set, the socket won't be closed, which is okay. But additionally, the internal data structure of this BIO won't be freed. Small patch to correct this behaviour: --- bss_conn.c-orig Thu Sep 21 07:41:58 2000 +++ bss_conn.c Sat Aug 4 06:15:11 2001 @@ -391,11 +391,13 @@ if (a->shutdown) { conn_close_socket(a); - BIO_CONNECT_free(data); - a->ptr=NULL; - a->flags=0; - a->init=0; } + + BIO_CONNECT_free(data); + a->ptr=NULL; + a->flags=0; + a->init=0; + return(1); } Best regards, Niko ________________________________________ Urlaubsfotos online verwalten, Abzuege bestellen, Grusskarten verschicken - mit den Fotoalben von http://www.epost.de ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]