summaryrefslogtreecommitdiffstats
path: root/ssl/d1_pkt.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2009-06-05 15:05:10 +0000
committerDr. Stephen Henson <steve@openssl.org>2009-06-05 15:05:10 +0000
commit1ddf6912449ca02e9cdd106f2c423117d6e2ea62 (patch)
tree1be09a807090fb2afbc54ad4e049325eb2159a90 /ssl/d1_pkt.c
parent78074baaddf30637cdd89cec16a75d749d72c895 (diff)
Update from 1.0.0-stable.
Diffstat (limited to 'ssl/d1_pkt.c')
-rw-r--r--ssl/d1_pkt.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/ssl/d1_pkt.c b/ssl/d1_pkt.c
index ec7752d93a..d88ef19fcd 100644
--- a/ssl/d1_pkt.c
+++ b/ssl/d1_pkt.c
@@ -1058,6 +1058,16 @@ start:
s->msg_callback(0, s->version, SSL3_RT_CHANGE_CIPHER_SPEC,
rr->data, 1, s, s->msg_callback_arg);
+ /* We can't process a CCS now, because previous handshake
+ * messages are still missing, so just drop it.
+ */
+ if (!s->d1->change_cipher_spec_ok)
+ {
+ goto start;
+ }
+
+ s->d1->change_cipher_spec_ok = 0;
+
s->s3->change_cipher_spec=1;
if (!ssl3_do_change_cipher_spec(s))
goto err;