summaryrefslogtreecommitdiffstats
path: root/ssl/d1_pkt.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2009-06-05 14:59:26 +0000
committerDr. Stephen Henson <steve@openssl.org>2009-06-05 14:59:26 +0000
commit58f41a926a73bd5c49beb91991b486d4e0b544f5 (patch)
tree8d2cd903536ebd79dfb8c315727c6583fef3157d /ssl/d1_pkt.c
parent81d06ef2fd64512e3833a13bedc004802003fbfa (diff)
Updates 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 a89edbc7a7..394daf6258 100644
--- a/ssl/d1_pkt.c
+++ b/ssl/d1_pkt.c
@@ -1102,6 +1102,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;