From: Richard Levitte Date: Mon, 1 Dec 2003 13:25:37 +0000 (+0000) Subject: It was pointed out to me that if the requested size is 0, we shouldn't X-Git-Tag: BEN_FIPS_TEST_5~13^2~30 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2fe9ab8e20e1480825cd5962ca516924f4f03f5e;p=oweals%2Fopenssl.git 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 --- 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;