diff options
author | Richard Levitte <levitte@openssl.org> | 2003-12-01 13:25:37 +0000 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2003-12-01 13:25:37 +0000 |
commit | 2fe9ab8e20e1480825cd5962ca516924f4f03f5e (patch) | |
tree | 65e6c00b2c8254084ec8b5298c19ea01e5809827 /crypto/evp/evp_enc.c | |
parent | 1145e03870dd82eae00bb45e0b2162494b9b2f38 (diff) |
It was pointed out to me that if the requested size is 0, we shouldn't
ty to allocate anything at all. This will allow eNULL to still work.
PR: 751
Notified by: Lutz Jaenicke
Diffstat (limited to 'crypto/evp/evp_enc.c')
-rw-r--r-- | crypto/evp/evp_enc.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/crypto/evp/evp_enc.c b/crypto/evp/evp_enc.c index 658391105c..cecb09cbe7 100644 --- a/crypto/evp/evp_enc.c +++ b/crypto/evp/evp_enc.c @@ -148,11 +148,18 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *imp #endif ctx->cipher=cipher; - ctx->cipher_data=OPENSSL_malloc(ctx->cipher->ctx_size); - if (!ctx->cipher_data) + if (ctx->cipher->ctx_size) { - EVPerr(EVP_F_EVP_CIPHERINIT, ERR_R_MALLOC_FAILURE); - return 0; + ctx->cipher_data=OPENSSL_malloc(ctx->cipher->ctx_size); + if (!ctx->cipher_data) + { + EVPerr(EVP_F_EVP_CIPHERINIT, ERR_R_MALLOC_FAILURE); + return 0; + } + } + else + { + ctx->cipher_data = NULL; } ctx->key_len = cipher->key_len; ctx->flags = 0; |