Fix ossl_statem_client_max_message_size() for DTLS1_BAD_VER
authorDavid Woodhouse <David.Woodhouse@intel.com>
Fri, 8 Jul 2016 19:47:42 +0000 (20:47 +0100)
committerMatt Caswell <matt@openssl.org>
Thu, 4 Aug 2016 19:56:23 +0000 (20:56 +0100)
The Change Cipher Spec message in this ancient pre-standard version of DTLS
that Cisco are unfortunately still using in their products, is 3 bytes.

Allow it.

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
ssl/statem/statem_clnt.c

index 9d4af3ab00c460cb6fd7bfe29bb7400ff82392ef..df19211b557c0f713cb33bd1fad1c126a82a30b9 100644 (file)
@@ -589,6 +589,8 @@ unsigned long ossl_statem_client_max_message_size(SSL *s)
             return SERVER_HELLO_DONE_MAX_LENGTH;
 
         case TLS_ST_CR_CHANGE:
+            if (s->version == DTLS1_BAD_VER)
+                return 3;
             return CCS_MAX_LENGTH;
 
         case TLS_ST_CR_SESSION_TICKET: