X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=ssl%2Fbio_ssl.c;h=e9552caee2aa997cb882f0a82376a7527f9a7c15;hb=51624dbdaed5325ac763e63dc5eb0b3ef85d6489;hp=af319af302a1bc4a56f649e0522d14a6f43f6fdb;hpb=0d0ed9187a48797b867e0ffc32b3ea9c5cc30639;p=oweals%2Fopenssl.git diff --git a/ssl/bio_ssl.c b/ssl/bio_ssl.c index af319af302..e9552caee2 100644 --- a/ssl/bio_ssl.c +++ b/ssl/bio_ssl.c @@ -348,7 +348,11 @@ static long ssl_ctrl(BIO *b, int cmd, long num, void *ptr) break; case BIO_C_SET_SSL: if (ssl != NULL) + { ssl_free(b); + if (!ssl_new(b)) + return 0; + } b->shutdown=(int)num; ssl=(SSL *)ptr; ((BIO_SSL *)b->ptr)->ssl=ssl; @@ -534,6 +538,7 @@ err: BIO *BIO_new_ssl_connect(SSL_CTX *ctx) { +#ifndef OPENSSL_NO_SOCK BIO *ret=NULL,*con=NULL,*ssl=NULL; if ((con=BIO_new(BIO_s_connect())) == NULL) @@ -545,6 +550,7 @@ BIO *BIO_new_ssl_connect(SSL_CTX *ctx) return(ret); err: if (con != NULL) BIO_free(con); +#endif return(NULL); }