diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c index 8218c2fa74988a8c6164ed3513c1698ca52fe50b..9158f21b963ccb870f862b56e4441ee0b5fbd345 100644 --- a/ssl/s3_lib.c +++ b/ssl/s3_lib.c @@ -3882,7 +3882,10 @@ int ssl3_renegotiate_check(SSL *s) */ long ssl_get_algorithm2(SSL *s) { - long alg2 = s->s3->tmp.new_cipher->algorithm2; + long alg2; + if (s->s3 == NULL || s->s3->tmp.new_cipher == NULL) + return -1; + alg2 = s->s3->tmp.new_cipher->algorithm2; if (s->method->ssl3_enc->enc_flags & SSL_ENC_FLAG_SHA256_PRF) { if (alg2 == (SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF)) return SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256;