summaryrefslogtreecommitdiff
path: root/drivers/builtin_openssl2/ssl/ssl_lib.c
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2016-05-04 08:35:35 +0200
committerRémi Verschelde <remi@verschelde.fr>2016-05-04 08:35:35 +0200
commit3279ad79c3dcecbb2c5c001775d7a28f982e0955 (patch)
tree2511b58f7b1b50fc0b9b84efa1c29fe25bd7876b /drivers/builtin_openssl2/ssl/ssl_lib.c
parent6a4b62e72069f7c96f8b7cb9b7855da0bbd84b63 (diff)
parentab623c923d4e2c950342aec5da371cb92b1fbbc6 (diff)
Merge pull request #4540 from mrezai/openssl-1.0.2h
Update OpenSSL to 1.0.2h
Diffstat (limited to 'drivers/builtin_openssl2/ssl/ssl_lib.c')
-rw-r--r--drivers/builtin_openssl2/ssl/ssl_lib.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/drivers/builtin_openssl2/ssl/ssl_lib.c b/drivers/builtin_openssl2/ssl/ssl_lib.c
index f1279bbf91..fd94325bb3 100644
--- a/drivers/builtin_openssl2/ssl/ssl_lib.c
+++ b/drivers/builtin_openssl2/ssl/ssl_lib.c
@@ -244,7 +244,16 @@ int SSL_clear(SSL *s)
ssl_clear_hash_ctx(&s->write_hash);
s->first_packet = 0;
-
+#ifndef OPENSSL_NO_TLSEXT
+ if (s->cert != NULL) {
+ if (s->cert->alpn_proposed) {
+ OPENSSL_free(s->cert->alpn_proposed);
+ s->cert->alpn_proposed = NULL;
+ }
+ s->cert->alpn_proposed_len = 0;
+ s->cert->alpn_sent = 0;
+ }
+#endif
#if 1
/*
* Check to see if we were changed into a different method, if so, revert
@@ -3174,6 +3183,12 @@ SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx)
ssl->cert->ciphers_rawlen = ocert->ciphers_rawlen;
ocert->ciphers_raw = NULL;
}
+#ifndef OPENSSL_NO_TLSEXT
+ ssl->cert->alpn_proposed = ocert->alpn_proposed;
+ ssl->cert->alpn_proposed_len = ocert->alpn_proposed_len;
+ ocert->alpn_proposed = NULL;
+ ssl->cert->alpn_sent = ocert->alpn_sent;
+#endif
ssl_cert_free(ocert);
}