bugfix: handle HelloRequest received during handshake correctly
authorBodo Möller <bodo@openssl.org>
Fri, 21 Sep 2001 11:18:40 +0000 (11:18 +0000)
committerBodo Möller <bodo@openssl.org>
Fri, 21 Sep 2001 11:18:40 +0000 (11:18 +0000)
CHANGES
ssl/s3_both.c

diff --git a/CHANGES b/CHANGES
index c69a760683c2962bedbd0eced1cbdfb637ba8a81..be6cfb184aeabe9b68a44e22752dc18b28cc90a2 100644 (file)
--- a/CHANGES
+++ b/CHANGES
          *) applies to 0.9.6a/0.9.6b/0.9.6c and 0.9.7
          +) applies to 0.9.7 only
 
+  *) Avoid infinite loop in ssl3_get_message (ssl/s3_both.c) if a
+     client receives HelloRequest while in a handshake.
+     [Bodo Moeller; bug noticed by Andy Schneider <andy.schneider@bjss.co.uk>]
+
   +) New function SSL_renegotiate_pending().  This returns true once
      renegotiation has been requested (either SSL_renegotiate() call
      or HelloRequest/ClientHello receveived from the peer) and becomes
index 68ddb143da473843cbcbd138fd713c1ba549829c..21531d5dbe57ca698723d2fd12a5848dd1b5b0f8 100644 (file)
@@ -387,7 +387,11 @@ long ssl3_get_message(SSL *s, int st1, int stn, int mt, long max, int *ok)
                                         * if their format is correct. Does not count for
                                         * 'Finished' MAC. */
                                        if (p[1] == 0 && p[2] == 0 &&p[3] == 0)
+                                               {
+                                               s->init_num = 0;
                                                skip_message = 1;
+                                               }
+                       
                        }
                while (skip_message);