projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Prune low-level ASN.1 parse errors from error queue in decoder_process()
[openssl.git]
/
providers
/
implementations
/
ciphers
/
cipher_idea.c
diff --git
a/providers/implementations/ciphers/cipher_idea.c
b/providers/implementations/ciphers/cipher_idea.c
index 68cca45f92ff923c8241d6bcd216cba3a127bdf7..07a6d4b997a4d7ba9157fd7286f08c34c929adda 100644
(file)
--- a/
providers/implementations/ciphers/cipher_idea.c
+++ b/
providers/implementations/ciphers/cipher_idea.c
@@
-18,6
+18,7
@@
#include "cipher_idea.h"
#include "prov/implementations.h"
#include "cipher_idea.h"
#include "prov/implementations.h"
+#include "prov/providercommon.h"
static OSSL_FUNC_cipher_freectx_fn idea_freectx;
static OSSL_FUNC_cipher_dupctx_fn idea_dupctx;
static OSSL_FUNC_cipher_freectx_fn idea_freectx;
static OSSL_FUNC_cipher_dupctx_fn idea_dupctx;
@@
-26,14
+27,19
@@
static void idea_freectx(void *vctx)
{
PROV_IDEA_CTX *ctx = (PROV_IDEA_CTX *)vctx;
{
PROV_IDEA_CTX *ctx = (PROV_IDEA_CTX *)vctx;
+ cipher_generic_reset_ctx((PROV_CIPHER_CTX *)vctx);
OPENSSL_clear_free(ctx, sizeof(*ctx));
}
static void *idea_dupctx(void *ctx)
{
PROV_IDEA_CTX *in = (PROV_IDEA_CTX *)ctx;
OPENSSL_clear_free(ctx, sizeof(*ctx));
}
static void *idea_dupctx(void *ctx)
{
PROV_IDEA_CTX *in = (PROV_IDEA_CTX *)ctx;
- PROV_IDEA_CTX *ret
= OPENSSL_malloc(sizeof(*ret))
;
+ PROV_IDEA_CTX *ret;
+ if (!ossl_prov_is_running())
+ return NULL;
+
+ ret = OPENSSL_malloc(sizeof(*ret));
if (ret == NULL) {
ERR_raise(ERR_LIB_PROV, ERR_R_MALLOC_FAILURE);
return NULL;
if (ret == NULL) {
ERR_raise(ERR_LIB_PROV, ERR_R_MALLOC_FAILURE);
return NULL;