diff options
author | xkernel <xkernel.wang@foxmail.com> | 2022-02-21 15:17:46 +0800 |
---|---|---|
committer | Pauli <pauli@openssl.org> | 2022-02-28 19:28:22 +1100 |
commit | 988e4adbc9515620f2e59a09481e7bfbacb829f7 (patch) | |
tree | 8bc24adddeeecba09adeac12cd3ec82e3c0cbaee /apps | |
parent | 75bb565f81b9f3dec3341210855e12048ab52dfa (diff) |
check the return value of CRYPTO_strdup()
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17741)
(cherry picked from commit 37be6feeebfec87733e5cb4762fc12bebba9f124)
Diffstat (limited to 'apps')
-rw-r--r-- | apps/req.c | 7 | ||||
-rw-r--r-- | apps/s_client.c | 5 |
2 files changed, 10 insertions, 2 deletions
diff --git a/apps/req.c b/apps/req.c index fd9826a5a8..8d6653f349 100644 --- a/apps/req.c +++ b/apps/req.c @@ -1594,6 +1594,13 @@ static EVP_PKEY_CTX *set_keygen_ctx(const char *gstr, *pkeytype = OPENSSL_strndup(keytype, keytypelen); else *pkeytype = OPENSSL_strdup(keytype); + + if (*pkeytype == NULL) { + BIO_printf(bio_err, "Out of memory\n"); + EVP_PKEY_free(param); + return NULL; + } + if (keylen >= 0) *pkeylen = keylen; diff --git a/apps/s_client.c b/apps/s_client.c index 3240467fb2..e16f539e46 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -805,7 +805,7 @@ int s_client_main(int argc, char **argv) char *cert_file = NULL, *key_file = NULL, *chain_file = NULL; char *chCApath = NULL, *chCAfile = NULL, *chCAstore = NULL, *host = NULL; char *thost = NULL, *tport = NULL; - char *port = OPENSSL_strdup(PORT); + char *port = NULL; char *bindhost = NULL, *bindport = NULL; char *passarg = NULL, *pass = NULL; char *vfyCApath = NULL, *vfyCAfile = NULL, *vfyCAstore = NULL; @@ -904,10 +904,11 @@ int s_client_main(int argc, char **argv) c_debug = 0; c_showcerts = 0; c_nbio = 0; + port = OPENSSL_strdup(PORT); vpm = X509_VERIFY_PARAM_new(); cctx = SSL_CONF_CTX_new(); - if (vpm == NULL || cctx == NULL) { + if (port == NULL || vpm == NULL || cctx == NULL) { BIO_printf(bio_err, "%s: out of memory\n", opt_getprog()); goto end; } |