diff options
author | samanway <samanway@samanway.sa.corp.samsungelectronics.net> | 2019-09-25 19:56:12 +0530 |
---|---|---|
committer | DoHyun Pyun <dh79.pyun@samsung.com> | 2019-10-14 10:19:09 +0900 |
commit | c9c470b7fa5ee700e00daf3d57dce92445714060 (patch) | |
tree | 68d13682a8c643f871ee666bc0a0a143d7630f21 | |
parent | 22410897e4072dffa4318220527d2fe12bb6f6c7 (diff) | |
download | iotivity-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.c | 1 | ||||
-rw-r--r-- | resource/csdk/stack/src/ocstack.c | 5 | ||||
-rw-r--r--[-rwxr-xr-x] | resource/csdk/stack/src/oicgroup.c | 3 | ||||
-rw-r--r-- | service/notification/src/common/NSConstants.h | 9 | ||||
-rw-r--r-- | service/notification/src/common/NSUtil.c | 1 | ||||
-rw-r--r-- | service/notification/src/provider/NSProviderListener.c | 3 | ||||
-rw-r--r-- | service/notification/src/provider/NSProviderSubscription.c | 15 | ||||
-rw-r--r-- | service/notification/src/provider/NSProviderTopic.c | 17 |
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; } } |