Remove redundant check from tls1_get_curvelist
authorMatt Caswell <matt@openssl.org>
Mon, 9 Nov 2015 16:37:33 +0000 (16:37 +0000)
committerMatt Caswell <matt@openssl.org>
Mon, 9 Nov 2015 23:07:57 +0000 (23:07 +0000)
The function tls1_get_curvelist() has an explicit check to see if s->cert
is NULL or not. However the check appears *after* calling the tls1_suiteb
macro which derefs s->cert. In reality s->cert can never be NULL because
it is created in SSL_new(). If the malloc fails then the SSL_new call fails
and no SSL object is created.

Reviewed-by: Tim Hudson <tjh@openssl.org>
ssl/t1_lib.c

index 9607c2e02aec9f1039e7a39e9eceaab1f5ea7edf..943d4733f4d5d04a2589acb2ba83dcd89bbd3519 100644 (file)
@@ -441,7 +441,7 @@ static int tls1_get_curvelist(SSL *s, int sess,
             pcurveslen = s->tlsext_ellipticcurvelist_length;
         }
         if (!*pcurves) {
-            if (!s->server || (s->cert && s->cert->ecdh_tmp_auto)) {
+            if (!s->server || s->cert->ecdh_tmp_auto) {
                 *pcurves = eccurves_auto;
                 pcurveslen = sizeof(eccurves_auto);
             } else {