PR: 2529
authorDr. Stephen Henson <steve@openssl.org>
Wed, 25 May 2011 15:15:52 +0000 (15:15 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Wed, 25 May 2011 15:15:52 +0000 (15:15 +0000)
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.

ssl/bio_ssl.c

index af319af302a1bc4a56f649e0522d14a6f43f6fdb..eedac8a3fcfccef8aae1ef4831868e00a18d515f 100644 (file)
@@ -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;