mirror of
https://github.com/openssl/openssl.git
synced 2025-02-17 14:32:04 +08:00
The ssl3_digest_cached_records() function does not handle errors properly
The ssl3_digest_cached_records() function was failing to handle errors that might be returned from EVP_DigestSignInit() and EVP_DigestSignUpdate(). RT#4180 Reviewed-by: Stephen Henson <steve@openssl.org>
This commit is contained in:
parent
1d00db6b5a
commit
ea32151f7b
@ -374,14 +374,13 @@ int ssl3_digest_cached_records(SSL *s, int keep)
|
||||
}
|
||||
|
||||
md = ssl_handshake_md(s);
|
||||
if (md == NULL) {
|
||||
if ( md == NULL
|
||||
|| !EVP_DigestInit_ex(s->s3->handshake_dgst, md, NULL)
|
||||
|| !EVP_DigestUpdate(s->s3->handshake_dgst, hdata, hdatalen))
|
||||
{
|
||||
SSLerr(SSL_F_SSL3_DIGEST_CACHED_RECORDS, ERR_R_INTERNAL_ERROR);
|
||||
return 0;
|
||||
}
|
||||
|
||||
EVP_DigestInit_ex(s->s3->handshake_dgst, md, NULL);
|
||||
EVP_DigestUpdate(s->s3->handshake_dgst, hdata, hdatalen);
|
||||
|
||||
}
|
||||
if (keep == 0) {
|
||||
BIO_free(s->s3->handshake_buffer);
|
||||
|
Loading…
Reference in New Issue
Block a user