mirror of
https://github.com/openssl/openssl.git
synced 2025-03-31 20:10:45 +08:00
Don't crash if the pkeyopt doesn't have a value
All pkeyopt's must have a ":" and a value for the option. Not supplying one can cause a crash Fixes #14494 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14496)
This commit is contained in:
parent
8bf611bc7f
commit
3d0b56785a
@ -1790,17 +1790,21 @@ int bio_to_mem(unsigned char **out, int maxlen, BIO *in)
|
||||
|
||||
int pkey_ctrl_string(EVP_PKEY_CTX *ctx, const char *value)
|
||||
{
|
||||
int rv;
|
||||
int rv = 0;
|
||||
char *stmp, *vtmp = NULL;
|
||||
|
||||
stmp = OPENSSL_strdup(value);
|
||||
if (!stmp)
|
||||
if (stmp == NULL)
|
||||
return -1;
|
||||
vtmp = strchr(stmp, ':');
|
||||
if (vtmp) {
|
||||
*vtmp = 0;
|
||||
vtmp++;
|
||||
}
|
||||
if (vtmp == NULL)
|
||||
goto err;
|
||||
|
||||
*vtmp = 0;
|
||||
vtmp++;
|
||||
rv = EVP_PKEY_CTX_ctrl_str(ctx, stmp, vtmp);
|
||||
|
||||
err:
|
||||
OPENSSL_free(stmp);
|
||||
return rv;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user