In ssl3_clear, preserve s3->init_extra along with s3->rbuf.
authorBodo Möller <bodo@openssl.org>
Thu, 13 Oct 2011 13:05:35 +0000 (13:05 +0000)
committerBodo Möller <bodo@openssl.org>
Thu, 13 Oct 2011 13:05:35 +0000 (13:05 +0000)
Submitted by: Bob Buckholz <bbuckholz@google.com>

CHANGES
ssl/s3_lib.c

diff --git a/CHANGES b/CHANGES
index 68dd4df7462b6ab9553c2b4c1e5f5951b0c2e908..1dad8806e5da7d1747e31683c46b4d9417b98905 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,7 +2,7 @@
  OpenSSL CHANGES
  _______________
 
- Changes between 1.0.0e and 1.0.1  [xx XXX xxxx]
+ Changes between 1.0.0f and 1.0.1  [xx XXX xxxx]
 
   *) Use type ossl_ssize_t instad of ssize_t which isn't available on
      all platforms. Move ssize_t definition from e_os.h to the public
        Add command line options to s_client/s_server.
      [Steve Henson]
 
- Changes between 1.0.0d and 1.0.0e [xx XXX xxxx]
+ Changes between 1.0.0e and 1.0.0f [xx XXX xxxx]
+
+  *) In ssl3_clear, preserve s3->init_extra along with s3->rbuf.
+     [Bob Buckholz (Google)]
+
+ Changes between 1.0.0d and 1.0.0e [6 Sep 2011]
 
   *) Fix bug where CRLs with nextUpdate in the past are sometimes accepted
      by initialising X509_STORE_CTX properly. (CVE-2011-3207)
   
  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)]
index c82dcc744c3e2f5c575b252e54f76007790522f9..14608a888a2456ce8e925a4fe9da951c697f37fb 100644 (file)
@@ -3000,6 +3000,7 @@ void ssl3_clear(SSL *s)
        {
        unsigned char *rp,*wp;
        size_t rlen, wlen;
+       int init_extra;
 
 #ifdef TLSEXT_TYPE_opaque_prf_input
        if (s->s3->client_opaque_prf_input != NULL)
@@ -3038,6 +3039,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;
        if (s->s3->handshake_buffer) {
                BIO_free(s->s3->handshake_buffer);
                s->s3->handshake_buffer = NULL;
@@ -3050,6 +3052,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);