summaryrefslogtreecommitdiffstats
path: root/ssl/bio_ssl.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2011-05-25 15:16:10 +0000
committerDr. Stephen Henson <steve@openssl.org>2011-05-25 15:16:10 +0000
commitfd60dfa0f2a9175f83955d6ad730392aa039aa5b (patch)
tree3837927475fdd2615f23f9534c48eb2e93e646ac /ssl/bio_ssl.c
parentbe1242cbd11f01a9915bf4b79f5647fab9a826b6 (diff)
PR: 2529
Submitted by: Marcus Meissner <meissner@suse.de> Reviewed by: steve Call ssl_new() to reallocate SSL BIO internals if we want to replace the existing internal SSL structure.
Diffstat (limited to 'ssl/bio_ssl.c')
-rw-r--r--ssl/bio_ssl.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ssl/bio_ssl.c b/ssl/bio_ssl.c
index af319af302..eedac8a3fc 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;