Ensure that vent->smeth != NULL before we call vent->smeth()
authorMatt Caswell <matt@openssl.org>
Wed, 2 Nov 2016 11:15:08 +0000 (11:15 +0000)
committerMatt Caswell <matt@openssl.org>
Wed, 9 Nov 2016 16:03:08 +0000 (16:03 +0000)
We can end up with a NULL SSL_METHOD function if a method has been
disabled. If that happens then we shouldn't call vent->smeth().

Reviewed-by: Rich Salz <rsalz@openssl.org>
ssl/statem/statem_lib.c

index 2aadc77..c05f645 100644 (file)
@@ -1053,7 +1053,7 @@ int ssl_choose_server_version(SSL *s, CLIENTHELLO_MSG *hello)
                  vent->version != 0 && vent->version != (int)candidate_vers;
                  ++vent)
                 ;
-            if (vent->version != 0) {
+            if (vent->version != 0 && vent->smeth != NULL) {
                 const SSL_METHOD *method;
 
                 method = vent->smeth();