tolerate extra data at end of client hello for SSL 3.0
authorBodo Möller <bodo@openssl.org>
Mon, 21 Jul 2003 15:16:20 +0000 (15:16 +0000)
committerBodo Möller <bodo@openssl.org>
Mon, 21 Jul 2003 15:16:20 +0000 (15:16 +0000)
CHANGES
ssl/s3_srvr.c

diff --git a/CHANGES b/CHANGES
index a8666781a3e4102e57a2f1daea8c12d6964fa8c1..c494b9281fbf4e4b4c3754a8d8c76dcaaa559102 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,11 @@
 
  Changes between 0.9.6j and 0.9.6k  [xx XXX 2003]
 
+  *) In ssl3_get_client_hello() (ssl/s3_srvr.c), tolerate additional
+     extra data after the compression methods not only for TLS 1.0
+     but also for SSL 3.0 (as required by the specification).
+     [Bodo Moeller; problem pointed out by Matthias Loepfe]
+
   *) Change X509_certificate_type() to mark the key as exported/exportable
      when it's 512 *bits* long, not 512 bytes.
      [Richard Levitte]
index 3f4818e888a72b2a383b2e070b896b934373802e..bd9f7dc209dcb171cfc5a10cbac311d529c2a0f7 100644 (file)
@@ -828,6 +828,9 @@ static int ssl3_get_client_hello(SSL *s)
                }
 
        /* TLS does not mind if there is extra stuff */
+#if 0   /* SSL 3.0 does not mind either, so we should disable this test
+         * (was enabled in 0.9.6d through 0.9.6j and 0.9.7 through 0.9.7b,
+         * in earlier SSLeay/OpenSSL releases this test existed but was buggy) */
        if (s->version == SSL3_VERSION)
                {
                if (p < (d+n))
@@ -839,6 +842,7 @@ static int ssl3_get_client_hello(SSL *s)
                        goto f_err;
                        }
                }
+#endif
 
        /* Given s->session->ciphers and ssl_get_ciphers_by_id(s), we must
         * pick a cipher */