From f7bd6f8c298cf7816201afd11e6b1d5594215262 Mon Sep 17 00:00:00 2001 From: "jaesick.shin" Date: Mon, 25 Jul 2016 16:25:30 +0900 Subject: [PATCH] code cleanup. This commit included code cleanup. 1. coding idiom 2. double free. 3. warning. 4. unlock second patch included change the mutex_unlock in NSProviderInterface. Change-Id: Iff615c577f0cb0e868fa29c1592c523c9bed4d6f Signed-off-by: jaesick.shin Reviewed-on: https://gerrit.iotivity.org/gerrit/9679 Tested-by: jenkins-iotivity Reviewed-by: Uze Choi --- .../examples/linux/notificationprovider.c | 6 ---- service/notification/include/NSCommon.h | 2 -- service/notification/src/common/NSUtil.c | 32 ++++++++++++++++++++-- .../src/provider/NSProviderInterface.c | 1 + .../src/provider/NSProviderNotification.c | 10 ++++++- .../notification/src/provider/NSProviderResource.c | 3 ++ .../src/provider/NSProviderScheduler.c | 6 ++-- .../src/provider/NSProviderSubscription.c | 4 +-- .../notification/src/provider/NSProviderSystem.c | 2 +- .../provider/cache/linux/NSProviderMemoryCache.c | 14 ++++++++++ .../provider/cache/linux/NSProviderMemoryCache.h | 1 - 11 files changed, 62 insertions(+), 19 deletions(-) diff --git a/service/notification/examples/linux/notificationprovider.c b/service/notification/examples/linux/notificationprovider.c index 6b0cdde..aad18bf 100644 --- a/service/notification/examples/linux/notificationprovider.c +++ b/service/notification/examples/linux/notificationprovider.c @@ -190,11 +190,6 @@ int main() case 4: printf("NSRead"); - NSSyncInfo * sync = (NSSyncInfo*) OICMalloc(sizeof(NSSyncInfo)); - - sync->messageId = OICStrdup("dev_001"); - sync->state = 1; - break; case 5: @@ -210,7 +205,6 @@ int main() printf("Session Code: "); gets(REMOTE_SERVER_SESSION); - NSCloudLogin(REMOTE_SERVER_ADDRESS, REMOTE_SERVER_SESSION, CloudLoginoutCallback); printf("OCCloudLogin requested"); break; diff --git a/service/notification/include/NSCommon.h b/service/notification/include/NSCommon.h index e11fa79..41beb5d 100644 --- a/service/notification/include/NSCommon.h +++ b/service/notification/include/NSCommon.h @@ -44,8 +44,6 @@ #define NS_ATTRIBUTE_DATETIME "DATE_TIME" #define NS_ATTRIBUTE_TTL "TTL" -#include - /** * Result code of notification service */ diff --git a/service/notification/src/common/NSUtil.c b/service/notification/src/common/NSUtil.c index 5b6f41b..541cdd8 100755 --- a/service/notification/src/common/NSUtil.c +++ b/service/notification/src/common/NSUtil.c @@ -163,7 +163,7 @@ NSSyncInfo* NSDuplicateSync(NSSyncInfo * copyMsg) { NSSyncInfo * newMsg = NULL; - if(copyMsg == NULL) + if(!copyMsg) { NS_LOG(ERROR, "Copy Msg is NULL"); return NULL; @@ -171,6 +171,12 @@ NSSyncInfo* NSDuplicateSync(NSSyncInfo * copyMsg) newMsg = (NSSyncInfo *)OICMalloc(sizeof(NSSyncInfo)); + if(!newMsg) + { + NS_LOG(ERROR, "newMsg is NULL"); + return NULL; + } + newMsg->messageId = copyMsg->messageId; OICStrcpy(newMsg->providerId, UUID_STRING_SIZE, copyMsg->providerId); newMsg->state = copyMsg->state; @@ -204,6 +210,13 @@ NSConsumer* NSDuplicateConsumer(NSConsumer * copyMsg) } newMsg = (NSConsumer *)OICMalloc(sizeof(NSConsumer)); + + if(!newMsg) + { + NS_LOG(ERROR, "newMsg is NULL"); + return NULL; + } + (newMsg->consumerId)[0] = '\0'; OICStrcpy(newMsg->consumerId, UUID_STRING_SIZE, copyMsg->consumerId); @@ -233,7 +246,7 @@ NSSyncInfo * NSGetSyncInfo(OCPayload * payload) { NS_LOG(DEBUG, "NSGetSyncInfo - IN"); char * providerId = NULL; - int64_t state; + int64_t state = 0; if(!payload) { @@ -362,6 +375,12 @@ NSMediaContents * NSDuplicateMediaContents(NSMediaContents * copyObj) NSMediaContents * newObj = (NSMediaContents *)OICMalloc(sizeof(NSMediaContents)); + if(!newObj) + { + NS_LOG(ERROR, "contents newObj is NULL"); + return NULL; + } + if(copyObj->iconImage) { newObj->iconImage = OICStrdup(copyObj->iconImage); @@ -374,7 +393,7 @@ NSResult NSFreeMediaContents(NSMediaContents * obj) { if(!obj) { - return NS_OK; + return NS_FAIL; } NSFreeMalloc(&(obj->iconImage)); @@ -386,6 +405,13 @@ NSResult NSFreeMediaContents(NSMediaContents * obj) NSMessage * NSInitializeMessage() { NSMessage * msg = (NSMessage *)OICMalloc(sizeof(NSMessage)); + + if(!msg) + { + NS_LOG(ERROR, "Msg is NULL"); + return NULL; + } + msg->messageId = OICGetCurrentTime(TIME_IN_MS); (msg->providerId)[0] = '\0'; msg->type = 0; diff --git a/service/notification/src/provider/NSProviderInterface.c b/service/notification/src/provider/NSProviderInterface.c index f60ef7b..e2c7061 100644 --- a/service/notification/src/provider/NSProviderInterface.c +++ b/service/notification/src/provider/NSProviderInterface.c @@ -119,6 +119,7 @@ NSResult NSProviderEnableRemoteService(char *serverAddress) if(!initProvider) { NS_LOG(DEBUG, "Provider service has not been started yet"); + pthread_mutex_unlock(&nsInitMutex); return NS_FAIL; } diff --git a/service/notification/src/provider/NSProviderNotification.c b/service/notification/src/provider/NSProviderNotification.c index 339357f..a149efd 100644 --- a/service/notification/src/provider/NSProviderNotification.c +++ b/service/notification/src/provider/NSProviderNotification.c @@ -100,7 +100,7 @@ NSResult NSSendNotification(NSMessage *msg) return NS_ERROR; } - OCRepPayload* payload; + OCRepPayload* payload = NULL; if (NSSetMessagePayload(msg, &payload) != NS_OK) { @@ -123,10 +123,14 @@ NSResult NSSendNotification(NSMessage *msg) if (subData->isWhite) { if(subData->messageObId != 0) + { obArray[obCount++] = subData->messageObId; + } if(subData->remote_messageObId != 0) + { obArray[obCount++] = subData->remote_messageObId; + } } it = it->next; } @@ -193,10 +197,14 @@ NSResult NSSendSync(NSSyncInfo *sync) if (subData->isWhite) { if(subData->syncObId != 0) + { obArray[obCount++] = subData->syncObId; + } if(subData->remote_syncObId != 0) + { obArray[obCount++] = subData->remote_syncObId; + } } it = it->next; } diff --git a/service/notification/src/provider/NSProviderResource.c b/service/notification/src/provider/NSProviderResource.c index 8da8796..a0fa445 100644 --- a/service/notification/src/provider/NSProviderResource.c +++ b/service/notification/src/provider/NSProviderResource.c @@ -19,6 +19,7 @@ //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= #include "NSProviderResource.h" +#include NSNotificationResource NotificationResource; NSMessageResource NotificationMessageResource; @@ -27,6 +28,8 @@ NSSyncResource NotificationSyncResource; OCStackApplicationResult NSHandlePublishCb(void *ctx, OCDoHandle handle, OCClientResponse *clientResponse) { + (void) handle; + if (ctx != (void *)DEFAULT_CONTEXT_VALUE) { NS_LOG(DEBUG, "Invalid publish callback received"); diff --git a/service/notification/src/provider/NSProviderScheduler.c b/service/notification/src/provider/NSProviderScheduler.c index 64032be..a576fa9 100755 --- a/service/notification/src/provider/NSProviderScheduler.c +++ b/service/notification/src/provider/NSProviderScheduler.c @@ -143,8 +143,10 @@ bool NSStopScheduler() void NSPushQueue(NSSchedulerType schedulerType, NSTaskType taskType, void* data) { - if(NSIsRunning[schedulerType] == false) + if(!NSIsRunning[schedulerType]) + { return; + } pthread_mutex_lock(&NSMutex[schedulerType]); @@ -155,7 +157,6 @@ void NSPushQueue(NSSchedulerType schedulerType, NSTaskType taskType, void* data) if (NSHeadMsg[schedulerType] == NULL) { NSHeadMsg[schedulerType] = (NSTask*) OICMalloc(sizeof(NSTask)); - memset(NSHeadMsg[schedulerType], 0, sizeof(NSTask)); NSHeadMsg[schedulerType]->taskType = taskType; NSHeadMsg[schedulerType]->taskData = data; NSHeadMsg[schedulerType]->nextTask = NULL; @@ -164,7 +165,6 @@ void NSPushQueue(NSSchedulerType schedulerType, NSTaskType taskType, void* data) else { NSTask* newNode = (NSTask*) OICMalloc(sizeof(NSTask)); - memset(newNode, 0, sizeof(NSTask)); newNode->taskType = taskType; newNode->taskData = data; newNode->nextTask = NULL; diff --git a/service/notification/src/provider/NSProviderSubscription.c b/service/notification/src/provider/NSProviderSubscription.c index bb8d742..3c2c267 100644 --- a/service/notification/src/provider/NSProviderSubscription.c +++ b/service/notification/src/provider/NSProviderSubscription.c @@ -60,7 +60,7 @@ NSResult NSSendAccessPolicyResponse(OCEntityHandlerRequest *entityHandlerRequest NS_LOG(DEBUG, "NSSendAccessPolicyResponse - IN"); // put notification resource - OCResourceHandle notificationResourceHandle; + OCResourceHandle notificationResourceHandle = NULL; if (NSPutNotificationResource(NSGetSubscriptionAccepter(), ¬ificationResourceHandle) != NS_OK) { @@ -244,7 +244,7 @@ NSResult NSSendResponse(const char * id, bool accepted) return NS_ERROR; } - OCResourceHandle rHandle; + OCResourceHandle rHandle = NULL; if (NSPutMessageResource(NULL, &rHandle) != NS_OK) { NS_LOG(ERROR, "Fail to put notification resource"); diff --git a/service/notification/src/provider/NSProviderSystem.c b/service/notification/src/provider/NSProviderSystem.c index 2a6c6ee..b9b2bf6 100644 --- a/service/notification/src/provider/NSProviderSystem.c +++ b/service/notification/src/provider/NSProviderSystem.c @@ -71,7 +71,7 @@ void NSInitProviderInfo() providerInfo = (NSProviderInfo *) OICMalloc(sizeof(NSProviderInfo)); const char * generatedUuid = (char *)OCGetServerInstanceIDString(); NS_LOG_V(DEBUG, "Generate Provider ID: %s", generatedUuid); - OICStrcpy(providerInfo->providerId, strlen(generatedUuid), generatedUuid); + OICStrcpy(providerInfo->providerId, UUID_STRING_SIZE, generatedUuid); providerInfo->providerName = NULL; } diff --git a/service/notification/src/provider/cache/linux/NSProviderMemoryCache.c b/service/notification/src/provider/cache/linux/NSProviderMemoryCache.c index bf761e5..66d88f9 100755 --- a/service/notification/src/provider/cache/linux/NSProviderMemoryCache.c +++ b/service/notification/src/provider/cache/linux/NSProviderMemoryCache.c @@ -19,6 +19,7 @@ //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= #include "NSProviderMemoryCache.h" +#include NSCacheList * NSStorageCreate() { @@ -204,7 +205,9 @@ NSResult NSStorageWrite(NSCacheList * list, NSCacheElement * newObj) NSCacheMsgData * msgData = (NSCacheMsgData *) newObj->data; + pthread_mutex_unlock(&NSCacheMutex); NSCacheElement * it = NSStorageRead(list, msgData->id); + pthread_mutex_lock(&NSCacheMutex); if (it) { NSCacheMsgData * itData = (NSCacheMsgData *) it->data; @@ -248,7 +251,9 @@ NSResult NSStorageDelete(NSCacheList * list, const char * delId) if (del == list->head) // first object { if (del == list->tail) // first object (one object) + { list->tail = del->next; + } list->head = del->next; @@ -265,7 +270,9 @@ NSResult NSStorageDelete(NSCacheList * list, const char * delId) if (NSProviderCompareIdCacheData(type, del->data, delId)) { if (del == list->tail) // delete object same to last object + { list->tail = prev; + } prev->next = del->next; NSProviderDeleteCacheData(type, del->data); @@ -391,7 +398,10 @@ bool NSIsSameObId(NSCacheSubData * data, OCObservationId id) { if (id == data->messageObId || id == data->syncObId || id == data->remote_messageObId || id == data->remote_syncObId) + { return true; + } + return false; } @@ -416,7 +426,9 @@ NSResult NSProviderDeleteSubDataFromObId(NSCacheList * list, OCObservationId id) if (del == list->head) // first object { if (del == list->tail) // first object (one object) + { list->tail = del->next; + } list->head = del->next; @@ -433,7 +445,9 @@ NSResult NSProviderDeleteSubDataFromObId(NSCacheList * list, OCObservationId id) if (NSIsSameObId(curr, id)) { if (del == list->tail) // delete object same to last object + { list->tail = prev; + } prev->next = del->next; NSProviderDeleteCacheData(type, del->data); diff --git a/service/notification/src/provider/cache/linux/NSProviderMemoryCache.h b/service/notification/src/provider/cache/linux/NSProviderMemoryCache.h index 218ce92..43cca9c 100755 --- a/service/notification/src/provider/cache/linux/NSProviderMemoryCache.h +++ b/service/notification/src/provider/cache/linux/NSProviderMemoryCache.h @@ -23,7 +23,6 @@ #include #include -#include #include "NSCommon.h" #include "NSConstants.h" -- 2.7.4