summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBodo Möller <bodo@openssl.org>2011-10-13 13:04:40 +0000
committerBodo Möller <bodo@openssl.org>2011-10-13 13:04:40 +0000
commitf7d514f449878eab6c5c7c1c71815b6ffb9044aa (patch)
treec03e0e9a35cde86082b176f9a33e11f5fdaf4104
parent6d50bce79f1a73477994e879ccf7741494f59997 (diff)
In ssl3_clear, preserve s3->init_extra along with s3->rbuf.
Submitted by: Bob Buckholz <bbuckholz@google.com>
-rw-r--r--CHANGES3
-rw-r--r--ssl/s3_lib.c4
2 files changed, 6 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index a5da898ddb..f0d43922b9 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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);
}
-