Fix SSL_export_keying_material() for DTLS1_BAD_VER
authorDavid Woodhouse <David.Woodhouse@intel.com>
Fri, 8 Jul 2016 19:46:07 +0000 (20:46 +0100)
committerMatt Caswell <matt@openssl.org>
Thu, 4 Aug 2016 19:56:23 +0000 (20:56 +0100)
Commit d8e8590e ("Fix missing return value checks in SCTP") made the
DTLS handshake fail, even for non-SCTP connections, if
SSL_export_keying_material() fails. Which it does, for DTLS1_BAD_VER.

Apply the trivial fix to make it succeed, since there's no real reason
why it shouldn't even though we never need it.

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

index df71f7b0dc5a1dcc61d984c564ce2fc278be332d..8c3c88e227436bcbc297bc74e3c0f478d18ee50f 100644 (file)
@@ -2300,7 +2300,7 @@ int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen,
                                const unsigned char *p, size_t plen,
                                int use_context)
 {
                                const unsigned char *p, size_t plen,
                                int use_context)
 {
-    if (s->version < TLS1_VERSION)
+    if (s->version < TLS1_VERSION && s->version != DTLS1_BAD_VER)
         return -1;
 
     return s->method->ssl3_enc->export_keying_material(s, out, olen, label,
         return -1;
 
     return s->method->ssl3_enc->export_keying_material(s, out, olen, label,