diff options
author | Matt Caswell <matt@openssl.org> | 2015-05-09 13:51:25 +0800 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2015-05-11 11:47:19 +0100 |
commit | 14def5f5375594830597cc153e11c6017f6adddf (patch) | |
tree | a64e41630782e7bc2f026648061a562c90a59951 | |
parent | fae4772c24b89526f70c74fa14a85c5c16bced9a (diff) |
Check sk_SSL_CIPHER_new_null return value
If sk_SSL_CIPHER_new_null() returns NULL then ssl_bytes_to_cipher_list()
should also return NULL.
Based on an original patch by mrpre <mrpre@163.com>.
Reviewed-by: Rich Salz <rsalz@openssl.org>
-rw-r--r-- | ssl/ssl_lib.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c index 0a2c04e741..8f74ef10b4 100644 --- a/ssl/ssl_lib.c +++ b/ssl/ssl_lib.c @@ -1483,9 +1483,13 @@ STACK_OF(SSL_CIPHER) *ssl_bytes_to_cipher_list(SSL *s, unsigned char *p, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST); return (NULL); } - if ((skp == NULL) || (*skp == NULL)) + if ((skp == NULL) || (*skp == NULL)) { sk = sk_SSL_CIPHER_new_null(); /* change perhaps later */ - else { + if(sk == NULL) { + SSLerr(SSL_F_SSL_BYTES_TO_CIPHER_LIST, ERR_R_MALLOC_FAILURE); + return NULL; + } + } else { sk = *skp; sk_SSL_CIPHER_zero(sk); } |