Check return value to avoid null pointer dereference 99/196199/3 accepted/tizen/4.0/unified/20190103.030512 submit/tizen_4.0/20190102.033734
authorseolheui, kim <s414.kim@samsung.com>
Wed, 26 Dec 2018 02:48:26 +0000 (11:48 +0900)
committerseolheui, kim <s414.kim@samsung.com>
Fri, 28 Dec 2018 05:58:15 +0000 (14:58 +0900)
Change-Id: Iba8672046ed58b89e4b92e86e9758fe27255d916
Signed-off-by: seolheui, kim <s414.kim@samsung.com>
server/key-manager/key-generator.cpp

index 3c5816f..2e2abc0 100644 (file)
@@ -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);