diff options
Diffstat (limited to 'ssl/statem/statem_lib.c')
-rw-r--r-- | ssl/statem/statem_lib.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/ssl/statem/statem_lib.c b/ssl/statem/statem_lib.c index b16864606b..7ef74b1f69 100644 --- a/ssl/statem/statem_lib.c +++ b/ssl/statem/statem_lib.c @@ -1977,14 +1977,17 @@ int ssl_version_supported(const SSL_CONNECTION *s, int version, for (vent = table; vent->version != 0 && ssl_version_cmp(s, version, vent->version) <= 0; ++vent) { - if (vent->cmeth != NULL + const SSL_METHOD *(*thismeth)(void) = s->server ? vent->smeth + : vent->cmeth; + + if (thismeth != NULL && ssl_version_cmp(s, version, vent->version) == 0 - && ssl_method_error(s, vent->cmeth()) == 0 + && ssl_method_error(s, thismeth()) == 0 && (!s->server || version != TLS1_3_VERSION || is_tls13_capable(s))) { if (meth != NULL) - *meth = vent->cmeth(); + *meth = thismeth(); return 1; } } |