diff options
author | Matt Caswell <matt@openssl.org> | 2020-05-22 15:11:43 +0200 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2020-06-19 11:19:32 +0200 |
commit | db9592c1f723841586960912c387a925e4547a26 (patch) | |
tree | 30d95d51395727588f2ca51b4186c1c601cdb7a1 /ssl | |
parent | Make sure we save the copy function when registering a new Keymgmt (diff) | |
download | openssl-db9592c1f723841586960912c387a925e4547a26.tar.xz openssl-db9592c1f723841586960912c387a925e4547a26.zip |
Provider a better error message if we fail to copy parameters
If EVP_PKEY_copy_parameters() failed in libssl we did not provide a very
helpful error message. We provide a better one.
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/11914)
Diffstat (limited to 'ssl')
-rw-r--r-- | ssl/ssl_err.c | 2 | ||||
-rw-r--r-- | ssl/statem/extensions_clnt.c | 2 | ||||
-rw-r--r-- | ssl/statem/statem_srvr.c | 4 |
3 files changed, 5 insertions, 3 deletions
diff --git a/ssl/ssl_err.c b/ssl/ssl_err.c index 30643c33b4..f84b3f94d8 100644 --- a/ssl/ssl_err.c +++ b/ssl/ssl_err.c @@ -109,6 +109,8 @@ static const ERR_STRING_DATA SSL_str_reasons[] = { {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_COOKIE_GEN_CALLBACK_FAILURE), "cookie gen callback failure"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_COOKIE_MISMATCH), "cookie mismatch"}, + {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_COPY_PARAMETERS_FAILED), + "copy parameters failed"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED), "custom ext handler already installed"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_DANE_ALREADY_ENABLED), diff --git a/ssl/statem/extensions_clnt.c b/ssl/statem/extensions_clnt.c index c83e18e84d..dbdedad1ab 100644 --- a/ssl/statem/extensions_clnt.c +++ b/ssl/statem/extensions_clnt.c @@ -1907,7 +1907,7 @@ int tls_parse_stoc_key_share(SSL *s, PACKET *pkt, unsigned int context, X509 *x, skey = EVP_PKEY_new(); if (skey == NULL || EVP_PKEY_copy_parameters(skey, ckey) <= 0) { SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS_PARSE_STOC_KEY_SHARE, - ERR_R_MALLOC_FAILURE); + SSL_R_COPY_PARAMETERS_FAILED); return 0; } diff --git a/ssl/statem/statem_srvr.c b/ssl/statem/statem_srvr.c index 036bfadbe5..d3913e1b7d 100644 --- a/ssl/statem/statem_srvr.c +++ b/ssl/statem/statem_srvr.c @@ -3147,7 +3147,7 @@ static int tls_process_cke_dhe(SSL *s, PACKET *pkt) ckey = EVP_PKEY_new(); if (ckey == NULL || EVP_PKEY_copy_parameters(ckey, skey) == 0) { SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS_PROCESS_CKE_DHE, - SSL_R_BN_LIB); + SSL_R_COPY_PARAMETERS_FAILED); goto err; } @@ -3216,7 +3216,7 @@ static int tls_process_cke_ecdhe(SSL *s, PACKET *pkt) ckey = EVP_PKEY_new(); if (ckey == NULL || EVP_PKEY_copy_parameters(ckey, skey) <= 0) { SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS_PROCESS_CKE_ECDHE, - ERR_R_EVP_LIB); + SSL_R_COPY_PARAMETERS_FAILED); goto err; } |