X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=ssl%2Fs3_enc.c;h=eedf74d392a61776ee4555911e8ce0816a71e2d6;hp=bde19e1fb8ad3bc6a9bf0a502d46d230620f8f32;hb=d480e182fe20fcaeca7817a4693eeaf594bb1a32;hpb=85fb6fdaed74d6091817ce5da17fcc737f36a51f diff --git a/ssl/s3_enc.c b/ssl/s3_enc.c index bde19e1fb8..eedf74d392 100644 --- a/ssl/s3_enc.c +++ b/ssl/s3_enc.c @@ -476,15 +476,21 @@ 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++) {