summaryrefslogtreecommitdiffstats
path: root/crypto/ex_data.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/ex_data.c')
-rw-r--r--crypto/ex_data.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/crypto/ex_data.c b/crypto/ex_data.c
index c9ec9d3337..0412f38e9b 100644
--- a/crypto/ex_data.c
+++ b/crypto/ex_data.c
@@ -171,6 +171,8 @@ int ossl_crypto_get_ex_new_index_ex(OSSL_LIB_CTX *ctx, int class_index,
* "app_data" routines use ex_data index zero. See RT 3710. */
if (ip->meth == NULL
|| !sk_EX_CALLBACK_push(ip->meth, NULL)) {
+ sk_EX_CALLBACK_free(ip->meth);
+ ip->meth = NULL;
ERR_raise(ERR_LIB_CRYPTO, ERR_R_CRYPTO_LIB);
goto err;
}