diff options
author | Bodo Möller <bodo@openssl.org> | 2011-10-13 13:04:40 +0000 |
---|---|---|
committer | Bodo Möller <bodo@openssl.org> | 2011-10-13 13:04:40 +0000 |
commit | f7d514f449878eab6c5c7c1c71815b6ffb9044aa (patch) | |
tree | c03e0e9a35cde86082b176f9a33e11f5fdaf4104 | |
parent | 6d50bce79f1a73477994e879ccf7741494f59997 (diff) |
In ssl3_clear, preserve s3->init_extra along with s3->rbuf.
Submitted by: Bob Buckholz <bbuckholz@google.com>
-rw-r--r-- | CHANGES | 3 | ||||
-rw-r--r-- | ssl/s3_lib.c | 4 |
2 files changed, 6 insertions, 1 deletions
@@ -4,6 +4,9 @@ Changes between 0.9.8r and 0.9.8s [xx XXX xxxx] + *) In ssl3_clear, preserve s3->init_extra along with s3->rbuf. + [Bob Buckholz (Google)] + *) Fix SSL memory handling for (EC)DH ciphersuites, in particular for multi-threaded use of ECDH. [Adam Langley (Google)] diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c index e6091ef816..7e063969d2 100644 --- a/ssl/s3_lib.c +++ b/ssl/s3_lib.c @@ -1710,6 +1710,7 @@ void ssl3_clear(SSL *s) { unsigned char *rp,*wp; size_t rlen, wlen; + int init_extra; ssl3_cleanup_key_block(s); if (s->s3->tmp.ca_names != NULL) @@ -1739,6 +1740,7 @@ void ssl3_clear(SSL *s) wp = s->s3->wbuf.buf; rlen = s->s3->rbuf.len; wlen = s->s3->wbuf.len; + init_extra = s->s3->init_extra; EVP_MD_CTX_cleanup(&s->s3->finish_dgst1); EVP_MD_CTX_cleanup(&s->s3->finish_dgst2); @@ -1748,6 +1750,7 @@ void ssl3_clear(SSL *s) s->s3->wbuf.buf = wp; s->s3->rbuf.len = rlen; s->s3->wbuf.len = wlen; + s->s3->init_extra = init_extra; ssl_free_wbio_buffer(s); @@ -2641,4 +2644,3 @@ need to go to SSL_ST_ACCEPT. } return(ret); } - |