From 898eb68d42d271595a51fec096e4f6a00e4c5328 Mon Sep 17 00:00:00 2001
From: Oleksii Beketov
Date: Mon, 16 Jan 2017 18:14:08 +0200
Subject: [PATCH] GetDerCrl() fix
Memory leak in GetDerCrl() fixed
Change-Id: Iddf0628c73d69ce8beafa66b09b4b2f2e61e8006
Signed-off-by: Oleksii Beketov
Reviewed-on: https://gerrit.iotivity.org/gerrit/16439
Tested-by: jenkins-iotivity
Reviewed-by: Dmitriy Zhuravlev
Reviewed-by: Chul Lee
Reviewed-by: Randeep Singh
(cherry picked from commit e43d061497721cfe8fbfef623c3c4d5ae2556ce7)
Reviewed-on: https://gerrit.iotivity.org/gerrit/17059
---
resource/csdk/security/src/crlresource.c | 3 ++-
resource/csdk/security/unittest/crlresourcetest.cpp | 4 +---
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/resource/csdk/security/src/crlresource.c b/resource/csdk/security/src/crlresource.c
index f541b93..dd67cb6 100644
--- a/resource/csdk/security/src/crlresource.c
+++ b/resource/csdk/security/src/crlresource.c
@@ -807,11 +807,12 @@ void GetDerCrl(ByteArray_t* out)
{
OIC_LOG (ERROR, TAG, "Base64 decoding failed.");
}
+ OICFree(out);
}
out->len = 0;
- out->data = OICMalloc(crl->len);
+ out->data = OICRealloc(out->data, crl->len);
if (out->data)
{
memcpy(out->data, crl->data, crl->len);
diff --git a/resource/csdk/security/unittest/crlresourcetest.cpp b/resource/csdk/security/unittest/crlresourcetest.cpp
index c617a70..1aab21f 100644
--- a/resource/csdk/security/unittest/crlresourcetest.cpp
+++ b/resource/csdk/security/unittest/crlresourcetest.cpp
@@ -87,9 +87,7 @@ TEST(CRLResourceTest, CBORPayloadToCrl)
//GetDerCrl Tests
TEST(CRLResourceTest, GetDerCrl)
{
-#define CRL_MAX_LEN 1024
- uint8_t crlData[CRL_MAX_LEN] = {0};
- ByteArray crlArray = {crlData, CRL_MAX_LEN};
+ ByteArray crlArray = {NULL, 0};
GetDerCrl(&crlArray);
EXPECT_NE(0, crlArray.len);
}
--
2.7.4