Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/26226)
int ssl_set_record_protocol_version(SSL_CONNECTION *s, int vers)
{
if (!ossl_assert(s->rlayer.rrlmethod != NULL)
- || !ossl_assert(s->rlayer.wrlmethod != NULL))
+ || !ossl_assert(s->rlayer.wrlmethod != NULL)
+ || !s->rlayer.rrlmethod->set_protocol_version(s->rlayer.rrl, vers)
+ || !s->rlayer.wrlmethod->set_protocol_version(s->rlayer.wrl, vers))
return 0;
- s->rlayer.rrlmethod->set_protocol_version(s->rlayer.rrl, s->version);
- s->rlayer.wrlmethod->set_protocol_version(s->rlayer.wrl, s->version);
return 1;
}
/* SSLfatal already called */
goto err;
}
- /* We are definitely going to be using TLSv1.3 */
- s->rlayer.wrlmethod->set_protocol_version(s->rlayer.wrl, version1_3);
+
+ /* We are definitely going to be using (D)TLSv1.3 */
+ if (!s->rlayer.wrlmethod->set_protocol_version(s->rlayer.wrl, version1_3)) {
+ SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
+ goto err;
+ }
if (!tls_collect_extensions(s, extpkt, SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST,
&extensions, NULL, 1)