mirror of
https://github.com/openssl/openssl.git
synced 2025-01-18 13:44:20 +08:00
evp_pkey_ctx_free_old_ops(): Make sure to assign NULL to freed pointers
Otherwise, should this function be called more than once on the same EVP_PKEY_CTX, we get double free issues. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10292)
This commit is contained in:
parent
2aa28a1abc
commit
fb1ecf85c9
@ -201,10 +201,14 @@ void evp_pkey_ctx_free_old_ops(EVP_PKEY_CTX *ctx)
|
||||
if (ctx->op.kex.exchprovctx != NULL && ctx->op.kex.exchange != NULL)
|
||||
ctx->op.kex.exchange->freectx(ctx->op.kex.exchprovctx);
|
||||
EVP_KEYEXCH_free(ctx->op.kex.exchange);
|
||||
ctx->op.kex.exchprovctx = NULL;
|
||||
ctx->op.kex.exchange = NULL;
|
||||
} else if (EVP_PKEY_CTX_IS_SIGNATURE_OP(ctx)) {
|
||||
if (ctx->op.sig.sigprovctx != NULL && ctx->op.sig.signature != NULL)
|
||||
ctx->op.sig.signature->freectx(ctx->op.sig.sigprovctx);
|
||||
EVP_SIGNATURE_free(ctx->op.sig.signature);
|
||||
ctx->op.sig.sigprovctx = NULL;
|
||||
ctx->op.sig.signature = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user