From ad5dabd65373ceef52dd0d610d7ae6c9d47515a4 Mon Sep 17 00:00:00 2001 From: "seolheui, kim" Date: Wed, 26 Dec 2018 11:48:26 +0900 Subject: [PATCH] Check return value to avoid null pointer dereference Change-Id: Iba8672046ed58b89e4b92e86e9758fe27255d916 Signed-off-by: seolheui, kim --- server/key-manager/key-generator.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/server/key-manager/key-generator.cpp b/server/key-manager/key-generator.cpp index 3c5816f..2e2abc0 100644 --- a/server/key-manager/key-generator.cpp +++ b/server/key-manager/key-generator.cpp @@ -76,10 +76,12 @@ BinaryData AESEncrypt(const BinaryData& in, const BinaryData& iv) { BinaryData ret(in.size(), 0); - EVP_CIPHER_CTX* ctx; + EVP_CIPHER_CTX* ctx = nullptr; int outLen, len; ctx = ::EVP_CIPHER_CTX_new(); + if (ctx == nullptr) + throw runtime::Exception("Failed to allocate memory for chipher context"); ::EVP_EncryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, key.data(), iv.data()); @@ -100,11 +102,13 @@ BinaryData AESDecrypt(const BinaryData& in, const BinaryData& iv) { BinaryData ret(in.size(), 0); - EVP_CIPHER_CTX* ctx; + EVP_CIPHER_CTX* ctx = nullptr; int len, len1; ctx = ::EVP_CIPHER_CTX_new(); + if (ctx == nullptr) + throw runtime::Exception("Failed to allocate memory for chipher context"); ::EVP_DecryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, key.data(), iv.data()); ::EVP_CIPHER_CTX_set_padding(ctx, 0); -- 2.34.1