NS_LOG(DEBUG, "already registered for topic name");\r
OICFree(topicData->topicName);\r
OICFree(topicData);\r
+ OICFree(newObj);\r
pthread_mutex_unlock(&NSCacheMutex);\r
return NS_FAIL;\r
}\r
NS_LOG(DEBUG, "already registered for topic name");\r
OICFree(topicData->topicName);\r
OICFree(topicData);\r
+ OICFree(newObj);\r
pthread_mutex_unlock(&NSCacheMutex);\r
return NS_FAIL;\r
}\r
NS_LOG(DEBUG, "already registered for topic name");\r
OICFree(topicData->topicName);\r
OICFree(topicData);\r
+ OICFree(newObj);\r
pthread_mutex_unlock(&NSCacheMutex);\r
return NS_FAIL;\r
}\r
(int)topicData->state);\r
\r
OICFree(topicData->topicName);\r
+ OICFree(topicData);\r
}\r
else if(type == NS_PROVIDER_CACHE_CONSUMER_TOPIC_NAME ||\r
type == NS_PROVIDER_CACHE_CONSUMER_TOPIC_CID)\r
{\r
NSCacheTopicSubData * topicData = (NSCacheTopicSubData *) data;\r
OICFree(topicData->topicName);\r
+ OICFree(topicData);\r
}\r
\r
return NS_OK;\r
(int) topics->state);\r
\r
NSTopicLL * next = topics->next;\r
+ OICFree(topics->topicName);\r
OICFree(topics);\r
topics = next;\r
}\r
\r
OCRepPayloadSetPropObjectArray(payload, NS_ATTRIBUTE_TOPIC_LIST,\r
(const OCRepPayload**) (payloadTopicArray), dimensions);\r
+ for (int i = 0; i < (int) dimensionSize; ++i)\r
+ {\r
+ OCRepPayloadDestroy(payloadTopicArray[i]);\r
+ }\r
+ OICFree(payloadTopicArray);\r
}\r
else\r
{\r
if (OCDoResponse(&response) != OC_STACK_OK)\r
{\r
NS_LOG(ERROR, "Fail to response topic list");\r
+ OCRepPayloadDestroy(payload);\r
return NS_ERROR;\r
}\r
- OCRepPayloadDestroy(payload);\r
\r
+ OCRepPayloadDestroy(payload);\r
NS_LOG(DEBUG, "NSSendTopicList - OUT");\r
return NS_OK;\r
}\r
{\r
newObj->data = topicSyncResult->topicData;\r
newObj->next = NULL;\r
- NSProviderStorageWrite(consumerTopicList, newObj);\r
- NSSendTopicUpdationToConsumer(subData->id);\r
- topicSyncResult->result = NS_OK;\r
+ if(NSProviderStorageWrite(consumerTopicList, newObj) == NS_OK)\r
+ {\r
+ NSSendTopicUpdationToConsumer(subData->id);\r
+ topicSyncResult->result = NS_OK;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ OICFree(subData->topicName);\r
+ OICFree(subData);\r
+ OICFree(newObj);\r
}\r
}\r
pthread_cond_signal(topicSyncResult->condition);\r
- pthread_mutex_unlock(topicSyncResult->mutex);\r
-
+ pthread_mutex_unlock(topicSyncResult->mutex);
}\r
break;\r
case TASK_UNSUBSCRIBE_TOPIC:\r