X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=ssl%2Fssl_sess.c;h=73d87fd6c1a3c3088606370d04e04d1473b2fb62;hp=05e4fb9fda27470fe85ff92f0458c668c979eb97;hb=77a926e6769705944e8ac8db37650cd36161be97;hpb=f9b0b45238851e8e0904408838a0b05ca1ee99b9 diff --git a/ssl/ssl_sess.c b/ssl/ssl_sess.c index 05e4fb9fda..73d87fd6c1 100644 --- a/ssl/ssl_sess.c +++ b/ssl/ssl_sess.c @@ -328,6 +328,11 @@ int ssl_get_new_session(SSL *s, int session) ss->ssl_version=DTLS1_VERSION; ss->session_id_length=SSL3_SSL_SESSION_ID_LENGTH; } + else if (s->version == DTLS1_2_VERSION) + { + ss->ssl_version=DTLS1_2_VERSION; + ss->session_id_length=SSL3_SSL_SESSION_ID_LENGTH; + } else { SSLerr(SSL_F_SSL_GET_NEW_SESSION,SSL_R_UNSUPPORTED_SSL_VERSION); @@ -393,32 +398,6 @@ int ssl_get_new_session(SSL *s, int session) return 0; } } -#ifndef OPENSSL_NO_EC - if (s->tlsext_ecpointformatlist) - { - if (ss->tlsext_ecpointformatlist != NULL) OPENSSL_free(ss->tlsext_ecpointformatlist); - if ((ss->tlsext_ecpointformatlist = OPENSSL_malloc(s->tlsext_ecpointformatlist_length)) == NULL) - { - SSLerr(SSL_F_SSL_GET_NEW_SESSION, ERR_R_MALLOC_FAILURE); - SSL_SESSION_free(ss); - return 0; - } - ss->tlsext_ecpointformatlist_length = s->tlsext_ecpointformatlist_length; - memcpy(ss->tlsext_ecpointformatlist, s->tlsext_ecpointformatlist, s->tlsext_ecpointformatlist_length); - } - if (s->tlsext_ellipticcurvelist) - { - if (ss->tlsext_ellipticcurvelist != NULL) OPENSSL_free(ss->tlsext_ellipticcurvelist); - if ((ss->tlsext_ellipticcurvelist = OPENSSL_malloc(s->tlsext_ellipticcurvelist_length)) == NULL) - { - SSLerr(SSL_F_SSL_GET_NEW_SESSION, ERR_R_MALLOC_FAILURE); - SSL_SESSION_free(ss); - return 0; - } - ss->tlsext_ellipticcurvelist_length = s->tlsext_ellipticcurvelist_length; - memcpy(ss->tlsext_ellipticcurvelist, s->tlsext_ellipticcurvelist, s->tlsext_ellipticcurvelist_length); - } -#endif #endif } else @@ -615,12 +594,14 @@ int ssl_get_prev_session(SSL *s, unsigned char *session_id, int len, if (ret != NULL) { SSL_SESSION_free(ret); +#ifndef OPENSSL_NO_TLSEXT if (!try_session_cache) { /* The session was from a ticket, so we should * issue a ticket for the new session */ s->tlsext_ticket_expected = 1; } +#endif } if (fatal) return -1;