diff options
Diffstat (limited to 'src/lib/libssl/bio_ssl.c')
-rw-r--r-- | src/lib/libssl/bio_ssl.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lib/libssl/bio_ssl.c b/src/lib/libssl/bio_ssl.c index af319af302..eedac8a3fc 100644 --- a/src/lib/libssl/bio_ssl.c +++ b/src/lib/libssl/bio_ssl.c | |||
@@ -348,7 +348,11 @@ static long ssl_ctrl(BIO *b, int cmd, long num, void *ptr) | |||
348 | break; | 348 | break; |
349 | case BIO_C_SET_SSL: | 349 | case BIO_C_SET_SSL: |
350 | if (ssl != NULL) | 350 | if (ssl != NULL) |
351 | { | ||
351 | ssl_free(b); | 352 | ssl_free(b); |
353 | if (!ssl_new(b)) | ||
354 | return 0; | ||
355 | } | ||
352 | b->shutdown=(int)num; | 356 | b->shutdown=(int)num; |
353 | ssl=(SSL *)ptr; | 357 | ssl=(SSL *)ptr; |
354 | ((BIO_SSL *)b->ptr)->ssl=ssl; | 358 | ((BIO_SSL *)b->ptr)->ssl=ssl; |