summaryrefslogtreecommitdiffstats
path: root/ssl/ssl_lib.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2009-10-16 13:41:52 +0000
committerDr. Stephen Henson <steve@openssl.org>2009-10-16 13:41:52 +0000
commitcc6688d7969d3eaa0ac26afc98562bfa9c896cd0 (patch)
tree8e0091b420866fec61bc63d57d5bacb889910ebb /ssl/ssl_lib.c
parent9b1f24df3d2b18b679b2bc22284f34e88488c4ed (diff)
PR: 2073
Submitted by: Tomas Mraz <tmraz@redhat.com> Approved by: steve@openssl.org Don't access freed SSL_CTX in SSL_free().
Diffstat (limited to 'ssl/ssl_lib.c')
-rw-r--r--ssl/ssl_lib.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c
index 49f8ca46d1..b3b356d5ab 100644
--- a/ssl/ssl_lib.c
+++ b/ssl/ssl_lib.c
@@ -556,7 +556,6 @@ void SSL_free(SSL *s)
if (s->cert != NULL) ssl_cert_free(s->cert);
/* Free up if allocated */
- if (s->ctx) SSL_CTX_free(s->ctx);
#ifndef OPENSSL_NO_TLSEXT
if (s->tlsext_hostname)
OPENSSL_free(s->tlsext_hostname);
@@ -580,6 +579,8 @@ void SSL_free(SSL *s)
if (s->method != NULL) s->method->ssl_free(s);
+ if (s->ctx) SSL_CTX_free(s->ctx);
+
#ifndef OPENSSL_NO_KRB5
if (s->kssl_ctx != NULL)
kssl_ctx_free(s->kssl_ctx);