summaryrefslogtreecommitdiff
path: root/service/notification/src/provider/NSProviderTopic.c
diff options
context:
space:
mode:
Diffstat (limited to 'service/notification/src/provider/NSProviderTopic.c')
-rw-r--r--service/notification/src/provider/NSProviderTopic.c17
1 files changed, 15 insertions, 2 deletions
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;
}
}