From bae888047c3313e742f2b56cbab3366b118762e4 Mon Sep 17 00:00:00 2001 From: KIM JungYong Date: Thu, 13 Oct 2016 11:44:38 +0900 Subject: [PATCH] Fix bugs for result of static analizer. 1. Initializatioin of local variable is added. 2. Invalid memory double free is removed on error handling. Change-Id: I2d4c8460dd1e81ef88f6119f79deeae09c7f01c8 Signed-off-by: KIM JungYong Reviewed-on: https://gerrit.iotivity.org/gerrit/13201 Tested-by: jenkins-iotivity Reviewed-by: Uze Choi --- service/notification/src/consumer/NSConsumerCommunication.c | 5 +---- service/notification/src/consumer/NSThread.c | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/service/notification/src/consumer/NSConsumerCommunication.c b/service/notification/src/consumer/NSConsumerCommunication.c index 8340d3b..4d4b62a 100644 --- a/service/notification/src/consumer/NSConsumerCommunication.c +++ b/service/notification/src/consumer/NSConsumerCommunication.c @@ -335,6 +335,7 @@ OCRepPayload * NSGetExtraInfo(OCRepPayload * payload) { NS_LOG(DEBUG, "get extra info"); OCRepPayload * extraInfo = OCRepPayloadCreate(); + NS_VERIFY_NOT_NULL(extraInfo, NULL); OCRepPayload * origin = OCRepPayloadClone(payload); bool isFirstExtra = true; @@ -628,7 +629,6 @@ void NSConsumerCommunicationTaskProcessing(NSTask * task) NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(connections, { NSRemoveProvider_internal((void *) provider); - NSRemoveProvider_internal((void *) task->taskData); NSOICFree(task); }); @@ -636,7 +636,6 @@ void NSConsumerCommunicationTaskProcessing(NSTask * task) NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(topicUri, { NSRemoveProvider_internal((void *) provider); - NSRemoveProvider_internal((void *) task->taskData); NSOICFree(task); }); @@ -655,7 +654,6 @@ void NSConsumerCommunicationTaskProcessing(NSTask * task) NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(query, { NSRemoveProvider_internal((void *) provider); - NSRemoveProvider_internal((void *) task->taskData); NSOICFree(task); }); NS_LOG_V(DEBUG, "topic query : %s", query); @@ -666,7 +664,6 @@ void NSConsumerCommunicationTaskProcessing(NSTask * task) NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(NSOCResultToSuccess(ret) == true ? (void *) 1 : NULL, { NSRemoveProvider_internal((void *) provider); - NSRemoveProvider_internal((void *) task->taskData); NSOICFree(task); }); diff --git a/service/notification/src/consumer/NSThread.c b/service/notification/src/consumer/NSThread.c index 5610636..36655d8 100644 --- a/service/notification/src/consumer/NSThread.c +++ b/service/notification/src/consumer/NSThread.c @@ -53,7 +53,7 @@ NSConsumerThread * NSThreadInit(NSThreadFunc func, void * data) handle->isStarted = true; - pthread_attr_t attrDetached; + pthread_attr_t attrDetached = {}; pthread_attr_init(& attrDetached); pthread_attr_setdetachstate(& attrDetached, PTHREAD_CREATE_DETACHED); -- 2.7.4