summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsamanway <samanway@samanway.sa.corp.samsungelectronics.net>2019-09-25 19:56:12 +0530
committerDoHyun Pyun <dh79.pyun@samsung.com>2019-10-14 10:19:09 +0900
commitc9c470b7fa5ee700e00daf3d57dce92445714060 (patch)
tree68d13682a8c643f871ee666bc0a0a143d7630f21
parent22410897e4072dffa4318220527d2fe12bb6f6c7 (diff)
downloadiotivity-c9c470b7fa5ee700e00daf3d57dce92445714060.tar.gz
iotivity-c9c470b7fa5ee700e00daf3d57dce92445714060.tar.bz2
iotivity-c9c470b7fa5ee700e00daf3d57dce92445714060.zip
Fix for SVACE defects
https://github.sec.samsung.net/RS7-IOTIVITY/IoTivity/pull/581 (cherry-picked from 0c9a4bdc0e7a2bfd4bbd2168366281b8741c2e29) Change-Id: Ia5554e93f8b913f10053bf4a09bb3b1bd7dbb8ce Signed-off-by: samanway-dey <samanway,dey@samsung.com> Signed-off-by: DoHyun Pyun <dh79.pyun@samsung.com>
-rw-r--r--resource/csdk/stack/src/ocresource.c1
-rw-r--r--resource/csdk/stack/src/ocstack.c5
-rw-r--r--[-rwxr-xr-x]resource/csdk/stack/src/oicgroup.c3
-rw-r--r--service/notification/src/common/NSConstants.h9
-rw-r--r--service/notification/src/common/NSUtil.c1
-rw-r--r--service/notification/src/provider/NSProviderListener.c3
-rw-r--r--service/notification/src/provider/NSProviderSubscription.c15
-rw-r--r--service/notification/src/provider/NSProviderTopic.c17
8 files changed, 49 insertions, 5 deletions
diff --git a/resource/csdk/stack/src/ocresource.c b/resource/csdk/stack/src/ocresource.c
index 7ffdcc1fe..bba4dd1b6 100644
--- a/resource/csdk/stack/src/ocresource.c
+++ b/resource/csdk/stack/src/ocresource.c
@@ -362,6 +362,7 @@ static OCStackResult BuildDevicePlatformPayload(const OCResource *resourcePtr, O
if (!deviceId)
{
OIC_LOG(ERROR, TAG, "Failed retrieving device id.");
+ OCPayloadDestroy((OCPayload *)tempPayload);
return OC_STACK_ERROR;
}
OCRepPayloadSetPropString(tempPayload, OC_RSRVD_DEVICE_ID, deviceId);
diff --git a/resource/csdk/stack/src/ocstack.c b/resource/csdk/stack/src/ocstack.c
index 9505f2686..5f94a125e 100644
--- a/resource/csdk/stack/src/ocstack.c
+++ b/resource/csdk/stack/src/ocstack.c
@@ -1864,6 +1864,11 @@ void HandleCAErrorResponse(const CAEndpoint_t *endPoint, const CAErrorInfo_t *er
OIC_LOG(INFO, TAG, "Exit HandleCAErrorResponse");
OIC_TRACE_END();
+ if(NULL != observer)
+ {
+ OICFree(observer);
+ observer = NULL;
+ }
}
/*
diff --git a/resource/csdk/stack/src/oicgroup.c b/resource/csdk/stack/src/oicgroup.c
index 5114f4166..61c0eaa13 100755..100644
--- a/resource/csdk/stack/src/oicgroup.c
+++ b/resource/csdk/stack/src/oicgroup.c
@@ -779,8 +779,11 @@ exit:
OCFREE(desc)
OCFREE(capa)
OCFREE(action)
+ if (*set)
+ {
OCFREE((*set)->actionsetName)
OCFREE(*set)
+ }
OCFREE(key)
OCFREE(value)
OCFREE(attr)
diff --git a/service/notification/src/common/NSConstants.h b/service/notification/src/common/NSConstants.h
index ba95e5791..8fe406896 100644
--- a/service/notification/src/common/NSConstants.h
+++ b/service/notification/src/common/NSConstants.h
@@ -139,6 +139,15 @@
} \
}
+#define NS_VERIFY_NOT_NULL_EXIT(obj) \
+ { \
+ if (!(obj)) \
+ { \
+ NS_LOG_V(ERROR, "%s : %s is null", __func__, #obj); \
+ goto exit; \
+ } \
+ }
+
#define NS_VERIFY_NOT_NULL(obj, retVal) \
{ \
if ((obj) == NULL) \
diff --git a/service/notification/src/common/NSUtil.c b/service/notification/src/common/NSUtil.c
index 35c1e258c..53c62c499 100644
--- a/service/notification/src/common/NSUtil.c
+++ b/service/notification/src/common/NSUtil.c
@@ -291,6 +291,7 @@ NSSyncInfo * NSGetSyncInfo(OCPayload * payload)
if (!OCRepPayloadGetPropInt(repPayload, NS_ATTRIBUTE_STATE, &state))
{
OICFree(retSync);
+ OICFree(providerId);
return NULL;
}
diff --git a/service/notification/src/provider/NSProviderListener.c b/service/notification/src/provider/NSProviderListener.c
index 8f6cc9cfa..bed9ebd87 100644
--- a/service/notification/src/provider/NSProviderListener.c
+++ b/service/notification/src/provider/NSProviderListener.c
@@ -110,6 +110,7 @@ OCEntityHandlerResult NSEntityHandlerMessageCb(OCEntityHandlerFlag flag,
&& strcmp(reqInterface, NS_INTERFACE_READ) != 0)
{
NS_LOG(ERROR, "Invalid interface");
+ NSOICFree(reqInterface);
return ehResult;
}
ehResult = OC_EH_OK;
@@ -185,6 +186,7 @@ OCEntityHandlerResult NSEntityHandlerSyncCb(OCEntityHandlerFlag flag,
&& strcmp(reqInterface, NS_INTERFACE_READWRITE) != 0)
{
NS_LOG(ERROR, "Invalid interface");
+ NSOICFree(reqInterface);
return ehResult;
}
@@ -279,6 +281,7 @@ OCEntityHandlerResult NSEntityHandlerTopicCb(OCEntityHandlerFlag flag,
&& strcmp(reqInterface, NS_INTERFACE_READWRITE) != 0)
{
NS_LOG(ERROR, "Invalid interface");
+ NSOICFree(reqInterface);
return ehResult;
}
// send consumer's interesting topic list if consumer id exists
diff --git a/service/notification/src/provider/NSProviderSubscription.c b/service/notification/src/provider/NSProviderSubscription.c
index 3d01f3edf..a275660ac 100644
--- a/service/notification/src/provider/NSProviderSubscription.c
+++ b/service/notification/src/provider/NSProviderSubscription.c
@@ -144,8 +144,12 @@ void NSHandleSubscription(OCEntityHandlerRequest *entityHandlerRequest, NSResour
NSCacheElement * element = (NSCacheElement *) OICMalloc(sizeof(NSCacheElement));
NS_VERIFY_NOT_NULL_V(element);
NSCacheSubData * subData = (NSCacheSubData *) OICMalloc(sizeof(NSCacheSubData));
- NS_VERIFY_NOT_NULL_V(subData);
-
+ if (!subData)
+ {
+ NS_LOG(ERROR, "Memory assignment to subData failed");
+ NSOICFree(element);
+ return;
+ }
OICStrcpy(subData->id, UUID_STRING_SIZE, id);
NS_LOG_V(INFO_PRIVATE, "SubList ID = [%s]", subData->id);
@@ -205,7 +209,12 @@ void NSHandleSubscription(OCEntityHandlerRequest *entityHandlerRequest, NSResour
NSCacheElement * element = (NSCacheElement *) OICMalloc(sizeof(NSCacheElement));
NS_VERIFY_NOT_NULL_V(element);
NSCacheSubData * subData = (NSCacheSubData *) OICMalloc(sizeof(NSCacheSubData));
- NS_VERIFY_NOT_NULL_V(subData);
+ if (!subData)
+ {
+ NS_LOG(ERROR, "Memory assignment to subData failed");
+ NSOICFree(element);
+ return;
+ }
OICStrcpy(subData->id, UUID_STRING_SIZE, id);
NS_LOG_V(INFO_PRIVATE, "SubList ID = [%s]", subData->id);
diff --git a/service/notification/src/provider/NSProviderTopic.c b/service/notification/src/provider/NSProviderTopic.c
index 9a6dee9a3..b745659fc 100644
--- a/service/notification/src/provider/NSProviderTopic.c
+++ b/service/notification/src/provider/NSProviderTopic.c
@@ -306,7 +306,13 @@ NSResult NSSendTopicList(OCEntityHandlerRequest * entityHandlerRequest)
NS_LOG_V(DEBUG, "topicState = %d",(int) topics->state);
payloadTopicArray[i] = OCRepPayloadCreate();
- NS_VERIFY_NOT_NULL(payloadTopicArray[i], NS_ERROR);
+ if (!payloadTopicArray[i])
+ {
+ NS_LOG_V(ERROR, "payloadTopicArray[%d] is NULL", i);
+ NSOICFree(payloadTopicArray);
+ return;
+ }
+
OCRepPayloadSetPropString(payloadTopicArray[i], NS_ATTRIBUTE_TOPIC_NAME,
topics->topicName);
OCRepPayloadSetPropInt(payloadTopicArray[i], NS_ATTRIBUTE_TOPIC_SELECTION,
@@ -403,7 +409,7 @@ NSResult NSPostConsumerTopics(OCEntityHandlerRequest * entityHandlerRequest)
{
NSCacheTopicSubData * topicSubData = (NSCacheTopicSubData *) OICMalloc(
sizeof(NSCacheTopicSubData));
- NS_VERIFY_NOT_NULL(topicSubData, NS_FAIL);
+ NS_VERIFY_NOT_NULL_EXIT(topicSubData);
OICStrcpy(topicSubData->id, NS_UUID_STRING_SIZE, consumerId);
topicSubData->topicName = topicName;
@@ -447,6 +453,10 @@ NSResult NSPostConsumerTopics(OCEntityHandlerRequest * entityHandlerRequest)
NSOICFree(consumerId);
NS_LOG(DEBUG, "NSPostConsumerTopics() - OUT");
return NS_OK;
+
+exit:
+ OICFree(topicListPayload);
+ return NS_FAIL;
}
void * NSTopicSchedule(void * ptr)
@@ -497,7 +507,10 @@ void * NSTopicSchedule(void * ptr)
if (NSProviderStorageWrite(consumerTopicList, newObj) == NS_OK)
{
+ if(subData)
+ {
NSSendTopicUpdationToConsumer(subData->id);
+ }
topicSyncResult->result = NS_OK;
}
}