mirror of
https://github.com/openssl/openssl.git
synced 2025-04-06 20:20:50 +08:00
dh_exch.c: Add check for OPENSSL_strdup
Since the OPENSSL_strdup() may return NULL if allocation fails, it should be better to check the return value. Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/17651)
This commit is contained in:
parent
7585073892
commit
c920020f0b
@ -292,7 +292,12 @@ static void *dh_dupctx(void *vpdhctx)
|
||||
if (dstctx->kdf_ukm == NULL)
|
||||
goto err;
|
||||
}
|
||||
dstctx->kdf_cekalg = OPENSSL_strdup(srcctx->kdf_cekalg);
|
||||
|
||||
if (srcctx->kdf_cekalg != NULL) {
|
||||
dstctx->kdf_cekalg = OPENSSL_strdup(srcctx->kdf_cekalg);
|
||||
if (dstctx->kdf_cekalg == NULL)
|
||||
goto err;
|
||||
}
|
||||
|
||||
return dstctx;
|
||||
err:
|
||||
@ -390,9 +395,16 @@ static int dh_set_ctx_params(void *vpdhctx, const OSSL_PARAM params[])
|
||||
p = OSSL_PARAM_locate_const(params, OSSL_KDF_PARAM_CEK_ALG);
|
||||
if (p != NULL) {
|
||||
str = name;
|
||||
if (!OSSL_PARAM_get_utf8_string(p, &str, sizeof(name)))
|
||||
return 0;
|
||||
pdhctx->kdf_cekalg = OPENSSL_strdup(name);
|
||||
|
||||
OPENSSL_free(pdhctx->kdf_cekalg);
|
||||
pdhctx->kdf_cekalg = NULL;
|
||||
if (p->data != NULL && p->data_size != 0) {
|
||||
if (!OSSL_PARAM_get_utf8_string(p, &str, sizeof(name)))
|
||||
return 0;
|
||||
pdhctx->kdf_cekalg = OPENSSL_strdup(name);
|
||||
if (pdhctx->kdf_cekalg == NULL)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user