Commit 8141de88 authored by Kevin Kane's avatar Kevin Kane Committed by Phil Coval

[IOT-1569] Use OICMalloc/OICFree consistently

Lingering and mixed uses of malloc/free exist throughout
IoTivity. Some buffers allocated with malloc are later freed
with OICFree; this is dangerous in case the implementation of
OICMalloc/OICFree ever changes.

This change harmonizes the code to use the OIC versions to
ensure code is always using the same heap allocation and free
functions with two exceptions:

* Sample code continues to use malloc/free; samples should not
refer to internal functions.
* The oc_logger module also still uses malloc/free; oic_malloc
calls oc_logger when operating in ENABLE_MALLOC_DEBUG mode, and
could result in a circular dependency if changed over.

Change-Id: Icd47243eec33500fe7fcd7d5d79ddf2128a9e717
Signed-off-by: default avatarKevin Kane <kkane@microsoft.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/14623Tested-by: default avatarjenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: default avatarMike Fenelon <mike.fenelon@microsoft.com>
Reviewed-by: default avatarDan Mihai <Daniel.Mihai@microsoft.com>
Reviewed-by: default avatarPhil Coval <philippe.coval@osg.samsung.com>
parent 290d5802
......@@ -24,6 +24,7 @@
#include "cautilinterface.h"
#include "cacommon.h"
#include "oic_string.h"
#include "oic_malloc.h"
#define CA_TRANSPORT_ADAPTER_SCOPE 1000
......@@ -343,7 +344,7 @@ TEST_F(CATests, SendResponseTestWithInvalidCode)
memset(&responseData, 0, sizeof(CAInfo_t));
responseData.type = CA_MSG_RESET;
responseData.messageId = 1;
responseData.payload = (CAPayload_t)malloc(sizeof("response payload"));
responseData.payload = (CAPayload_t)OICMalloc(sizeof("response payload"));
responseData.dataType = CA_RESPONSE_DATA;
EXPECT_TRUE(responseData.payload != NULL);
......@@ -362,7 +363,7 @@ TEST_F(CATests, SendResponseTestWithInvalidCode)
CADestroyToken(tempToken);
CADestroyEndpoint(tempRep);
free(responseData.payload);
OICFree(responseData.payload);
tempRep = NULL;
}
}
......
......@@ -22,6 +22,8 @@
#include "uqueue.h"
#include "oic_malloc.h"
class UQueueF : public testing::Test {
public:
UQueueF() :
......@@ -47,7 +49,7 @@ protected:
u_queue_message_t *CreateQueueMessage(void *data, uint32_t size)
{
u_queue_message_t *message = (u_queue_message_t *) malloc(sizeof(u_queue_message_t));
u_queue_message_t *message = (u_queue_message_t *) OICMalloc(sizeof(u_queue_message_t));
if (NULL == message)
{
return NULL;
......
......@@ -280,7 +280,7 @@ OCStringLL* OCCreateOCStringLL(const char* text);
/**
* This function creates a string from a list (with separated contents if several)
* @param ll Pointer to list
* @return newly allocated string
* @return newly allocated string. Caller takes ownership and must later free this memory with OICFree.
* @note separator is ',' (according to rfc4180)
**/
char* OCCreateString(const OCStringLL* ll);
......
......@@ -1501,7 +1501,7 @@ char* OCCreateString(const OCStringLL* ll)
len += strlen(it->value) + 1;
}
len--; // remove trailing separator (just added above)
str = (char*) malloc(len + 1);
str = (char*) OICMalloc(len + 1);
if (!str)
{
return NULL;
......@@ -1515,7 +1515,7 @@ char* OCCreateString(const OCStringLL* ll)
count = snprintf(pos, len + 1, "%s", it->value);
if ((size_t)count < sublen)
{
free(str);
OICFree(str);
return NULL;
}
len -= sublen;
......
......@@ -811,7 +811,7 @@ OCStackResult BuildStringFromActionSet(OCActionSet* actionset, char** desc)
goto exit;
}
actionTypeStr = (char *)malloc(1024);
actionTypeStr = (char *)OICMalloc(1024);
if(actionTypeStr != NULL)
{
sprintf(actionTypeStr, "%ld %u", actionset->timesteps, actionset->type);
......@@ -821,11 +821,11 @@ OCStackResult BuildStringFromActionSet(OCActionSet* actionset, char** desc)
remaining -= strlen(actionTypeStr);
strncat(temp, ACTION_DELIMITER, strlen(ACTION_DELIMITER));
remaining -= strlen(ACTION_DELIMITER);
free(actionTypeStr);
OICFree(actionTypeStr);
}
else
{
free(actionTypeStr);
OICFree(actionTypeStr);
res = OC_STACK_ERROR;
goto exit;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment