From: samanway Date: Wed, 25 Sep 2019 14:26:12 +0000 (+0530) Subject: Fix for SVACE defects X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5df5d064bf86cde0b2f01346cffdffdb3b63844c;p=platform%2Fupstream%2Fiotivity.git 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 Signed-off-by: DoHyun Pyun --- 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 old mode 100755 new mode 100644 index 5114f4166..61c0eaa13 --- 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; } }