Allow a zero length extension block
authorAdam Langley <agl@google.com>
Fri, 12 Jun 2015 07:05:49 +0000 (08:05 +0100)
committerMatt Caswell <matt@openssl.org>
Fri, 12 Jun 2015 14:45:17 +0000 (15:45 +0100)
It is valid for an extension block to be present in a ClientHello, but to
be of zero length.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
ssl/t1_lib.c

index c2d7d720712aa24930eb98a1adf468f493e3dabb..d70b93feadf0bd8198db02a015aa9bd9c6ebf9e8 100644 (file)
@@ -1016,12 +1016,12 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d,
 
     s->srtp_profile = NULL;
 
-    if (data >= (d + n - 2)) {
-        if (data != d + n)
-            goto err;
-        else
-            goto ri_check;
-    }
+    if (data == d + n)
+        goto ri_check;
+
+    if (data > (d + n - 2))
+        goto err;
+
     n2s(data, len);
 
     if (data > (d + n - len))