Commit f6a10313 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Revert "Avoid duplication."



This reverts commit d480e182.

Commit broke TLS handshakes due to fragility of digest caching: that will be
fixed separately.

Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
parent d480e182
Loading
Loading
Loading
Loading
+1 −7
Original line number Diff line number Diff line
@@ -476,21 +476,15 @@ void ssl3_cleanup_key_block(SSL *s)

void ssl3_init_finished_mac(SSL *s)
{
    BIO_free(s->s3->handshake_buffer);
    ssl3_free_digest_list(s);
    s->s3->handshake_buffer = BIO_new(BIO_s_mem());
    (void)BIO_set_close(s->s3->handshake_buffer, BIO_CLOSE);
}

/*
 * Free digest list. Also frees handshake buffer since they are always freed
 * together.
 */

void ssl3_free_digest_list(SSL *s)
{
    int i;
    BIO_free(s->s3->handshake_buffer);
    s->s3->handshake_buffer = NULL;
    if (!s->s3->handshake_dgst)
        return;
    for (i = 0; i < SSL_MAX_DIGEST; i++) {
+3 −0
Original line number Diff line number Diff line
@@ -2905,6 +2905,7 @@ void ssl3_free(SSL *s)
    OPENSSL_free(s->s3->tmp.ciphers_raw);
    OPENSSL_clear_free(s->s3->tmp.pms, s->s3->tmp.pmslen);
    OPENSSL_free(s->s3->tmp.peer_sigalgs);
    BIO_free(s->s3->handshake_buffer);
    ssl3_free_digest_list(s);
    OPENSSL_free(s->s3->alpn_selected);

@@ -2939,6 +2940,8 @@ void ssl3_clear(SSL *s)
#endif                         /* !OPENSSL_NO_EC */

    init_extra = s->s3->init_extra;
    BIO_free(s->s3->handshake_buffer);
    s->s3->handshake_buffer = NULL;
    ssl3_free_digest_list(s);

    if (s->s3->alpn_selected) {