Fix static analysis warnings on notification.
authorjake <jaehong2.lee@samsung.com>
Thu, 18 May 2017 09:49:40 +0000 (18:49 +0900)
committerUze Choi <uzchoi@samsung.com>
Sat, 20 May 2017 04:01:48 +0000 (04:01 +0000)
 - Uninitialized variable is initialized
 - Function strcpy is changed to strncpy
 - When execution of equal operation, prevent copied it self
 - Insert brace

Change-Id: I4de2c8cae30eea4c81cde1db7191788dc646b3dc
Signed-off-by: jake <jaehong2.lee@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/20025
Reviewed-by: Uze Choi <uzchoi@samsung.com>
Tested-by: Uze Choi <uzchoi@samsung.com>
12 files changed:
service/notification/cpp-wrapper/common/NSMessage.cpp
service/notification/cpp-wrapper/common/NSTopicsList.cpp
service/notification/cpp-wrapper/consumer/src/NSProvider.cpp
service/notification/cpp-wrapper/unittest/NSConsumerServiceTest2.cpp
service/notification/cpp-wrapper/unittest/NSProviderServiceTest2.cpp
service/notification/examples/linux/notificationconsumer.c
service/notification/examples/linux/notificationprovider.c
service/notification/src/provider/NSProviderNotification.c
service/notification/src/provider/NSProviderResource.c
service/notification/unittest/NSConsumerTest2.cpp
service/notification/unittest/NSProviderTest.cpp
service/notification/unittest/NSProviderTest2.cpp

index 9e6c672..626690d 100644 (file)
@@ -124,26 +124,30 @@ namespace OIC
 \r
         NSMessage &NSMessage::operator=(const NSMessage &msg)\r
         {\r
-            this->m_messageId = msg.getMessageId();\r
-            this->m_providerId = msg.getProviderId();\r
+            if (this != &msg)\r
+            {\r
+                this->m_messageId = msg.getMessageId();\r
+                this->m_providerId = msg.getProviderId();\r
 \r
-            this->m_type = msg.getType();\r
-            this->m_time = msg.getTime();\r
-            this->m_ttl = msg.getTTL();\r
-            this->m_title = msg.getTitle();\r
-            this->m_contentText = msg.getContentText();\r
-            this->m_sourceName = msg.getSourceName();\r
+                this->m_type = msg.getType();\r
+                this->m_time = msg.getTime();\r
+                this->m_ttl = msg.getTTL();\r
+                this->m_title = msg.getTitle();\r
+                this->m_contentText = msg.getContentText();\r
+                this->m_sourceName = msg.getSourceName();\r
 \r
-            if (msg.getMediaContents() != nullptr)\r
-            {\r
-                this->m_mediaContents = new NSMediaContents(msg.getMediaContents()->getIconImage());\r
-            }\r
-            else\r
-            {\r
-                this->m_mediaContents = new NSMediaContents();\r
+                if (msg.getMediaContents() != nullptr)\r
+                {\r
+                    this->m_mediaContents = new NSMediaContents(msg.getMediaContents()->getIconImage());\r
+                }\r
+                else\r
+                {\r
+                    this->m_mediaContents = new NSMediaContents();\r
+                }\r
+                this->m_topic = msg.getTopic();\r
+                this->m_extraInfo = OC::OCRepresentation(msg.getExtraInfo());\r
             }\r
-            this->m_topic = msg.getTopic();\r
-            this->m_extraInfo = OC::OCRepresentation(msg.getExtraInfo());\r
+\r
             return *this;\r
         }\r
 \r
index 0fb823b..1ba35e1 100644 (file)
@@ -51,11 +51,14 @@ namespace OIC
 
         NSTopicsList &NSTopicsList::operator=(const NSTopicsList &topicsList)
         {
-            for (auto it : topicsList.getTopicsList())
+            if (this != &topicsList)
             {
-                this->m_topicsList.push_back(new NSTopic(it.getTopicName(), it.getState()));
+                for (auto it : topicsList.getTopicsList())
+                {
+                    this->m_topicsList.push_back(new NSTopic(it.getTopicName(), it.getState()));
+                }
+                m_modifiable = false;
             }
-            m_modifiable = false;
             return *this;
         }
 
index 9272cf3..cc1e546 100644 (file)
@@ -76,21 +76,25 @@ namespace OIC
 \r
         NSProvider &NSProvider::operator=(const NSProvider &provider)\r
         {\r
-            this->m_providerId = provider.getProviderId();\r
-            this->m_topicList = std::make_shared<NSTopicsList>();\r
-            auto topicsList = provider.getTopicList();\r
-            if (topicsList != nullptr)\r
+            if (this != &provider)\r
             {\r
-                for (auto it : topicsList->getTopicsList())\r
+                this->m_providerId = provider.getProviderId();\r
+                this->m_topicList = std::make_shared<NSTopicsList>();\r
+                auto topicsList = provider.getTopicList();\r
+                if (topicsList != nullptr)\r
                 {\r
-                    this->m_topicList->addTopic(it.getTopicName(), it.getState());\r
+                    for (auto it : topicsList->getTopicsList())\r
+                    {\r
+                        this->m_topicList->addTopic(it.getTopicName(), it.getState());\r
+                    }\r
                 }\r
+                m_topicList->unsetModifiability();\r
+                this->setListener(provider.getProviderStateReceivedCb(), provider.getMessageReceivedCb(),\r
+                                  provider.getSyncInfoReceivedCb());\r
+                this->setProviderState(provider.getProviderState());\r
+                this->setProviderSubscribedState(provider.getProviderSubscribedState());\r
             }\r
-            m_topicList->unsetModifiability();\r
-            this->setListener(provider.getProviderStateReceivedCb(), provider.getMessageReceivedCb(),\r
-                              provider.getSyncInfoReceivedCb());\r
-            this->setProviderState(provider.getProviderState());\r
-            this->setProviderSubscribedState(provider.getProviderSubscribedState());\r
+\r
             return *this;\r
         }\r
 \r
index fb79774..9f0026a 100644 (file)
@@ -19,7 +19,7 @@
 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 
 /**
- * @file NSConsumerServiceTest2.cpp 
+ * @file NSConsumerServiceTest2.cpp
  *
  * This file contains Notification consumer service test cases that do not involve network related methods.
  * The test cases are executed during the build by enabling the option 'TEST' in scons build.
@@ -216,7 +216,7 @@ TEST_F(NotificationServiceConsumerTest, ExpectGetProviderSuccessWithInvalidProvi
 TEST_F(NotificationServiceConsumerTest, ExpectGetProviderSuccessWithValidProviderId)
 {
     ::NSProvider *provider = (::NSProvider *)malloc(sizeof(::NSProvider));
-    strcpy(provider->providerId, "098765432109876543210987654321098765");
+    strncpy(provider->providerId, "098765432109876543210987654321098765", NS_UTILS_UUID_STRING_SIZE);
     std::string provId;
     provId.assign(provider->providerId, NS_UTILS_UUID_STRING_SIZE - 1);
 
@@ -242,7 +242,7 @@ TEST_F(NotificationServiceConsumerTest, ExpectSuccessSendSyncInfo)
     std::string provId;
 
     ::NSProvider *provider = (::NSProvider *)malloc(sizeof(::NSProvider));
-    strcpy(provider->providerId, "098765432109876543210987654321098765");
+    strncpy(provider->providerId, "098765432109876543210987654321098765", NS_UTILS_UUID_STRING_SIZE);
     provId.assign(provider->providerId, NS_UTILS_UUID_STRING_SIZE - 1);
 
     std::shared_ptr<OIC::Service::NSProvider> providerTemp = std::make_shared<OIC::Service::NSProvider>
@@ -271,7 +271,7 @@ TEST_F(NotificationServiceConsumerTest, ExpectSuccessGetTopicsList)
     std::string provId;
 
     ::NSProvider *provider = (::NSProvider *)malloc(sizeof(::NSProvider));
-    strcpy(provider->providerId, "098765432109876543210987654321098765");
+    strncpy(provider->providerId, "098765432109876543210987654321098765", NS_UTILS_UUID_STRING_SIZE);
     provId.assign(provider->providerId, NS_UTILS_UUID_STRING_SIZE - 1);
 
     std::shared_ptr<OIC::Service::NSProvider> providerTemp = std::make_shared<OIC::Service::NSProvider>
index c045c4d..81b6559 100644 (file)
@@ -236,7 +236,7 @@ TEST_F(NotificationProviderServiceTest, ExpectFailAcceptSubscriptionInvalidPolic
 
     OIC::Service::NSProviderService::getInstance()->start(config);
     ::NSConsumer *consumer = (::NSConsumer *)malloc(sizeof(::NSConsumer));
-    strcpy(consumer->consumerId, "098765432109876543210987654321098765");
+    strncpy(consumer->consumerId, "098765432109876543210987654321098765", NS_UTILS_UUID_STRING_SIZE);
 
     std::shared_ptr<OIC::Service::NSConsumer> consumerTemp = std::make_shared<OIC::Service::NSConsumer>
             (consumer);
@@ -256,7 +256,7 @@ TEST_F(NotificationProviderServiceTest, ExpectFailSetTopicInvalidPolicy)
     std::string str1("TEST1");
     OIC::Service::NSProviderService::getInstance()->registerTopic(str1);
     ::NSConsumer *consumer = (::NSConsumer *)malloc(sizeof(::NSConsumer));
-    strcpy(consumer->consumerId, "098765432109876543210987654321098765");
+    strncpy(consumer->consumerId, "098765432109876543210987654321098765", NS_UTILS_UUID_STRING_SIZE);
 
     std::shared_ptr<OIC::Service::NSConsumer> consumerTemp = std::make_shared<OIC::Service::NSConsumer>
             (consumer);
@@ -282,7 +282,7 @@ TEST_F(NotificationProviderServiceTest, ExpectSuccessAcceptSubscription)
 
     OIC::Service::NSProviderService::getInstance()->start(config);
     ::NSConsumer *consumer = (::NSConsumer *)malloc(sizeof(::NSConsumer));
-    strcpy(consumer->consumerId, "098765432109876543210987654321098765");
+    strncpy(consumer->consumerId, "098765432109876543210987654321098765", NS_UTILS_UUID_STRING_SIZE);
 
     std::shared_ptr<OIC::Service::NSConsumer> consumerTemp = std::make_shared<OIC::Service::NSConsumer>
             (consumer);
@@ -303,7 +303,7 @@ TEST_F(NotificationProviderServiceTest, ExpectSuccessSetTopic)
 
     OIC::Service::NSProviderService::getInstance()->registerTopic(str1);
     ::NSConsumer *consumer = (::NSConsumer *)malloc(sizeof(::NSConsumer));
-    strcpy(consumer->consumerId, "098765432109876543210987654321098765");
+    strncpy(consumer->consumerId, "098765432109876543210987654321098765", NS_UTILS_UUID_STRING_SIZE);
 
     std::shared_ptr<OIC::Service::NSConsumer> consumerTemp = std::make_shared<OIC::Service::NSConsumer>
             (consumer);
@@ -321,7 +321,7 @@ TEST_F(NotificationProviderServiceTest, ExpectSuccessSetTopic)
 TEST_F(NotificationProviderServiceTest, ExpectSuccessUnSetTopic)
 {
     ::NSConsumer *consumer = (::NSConsumer *)malloc(sizeof(::NSConsumer));
-    strcpy(consumer->consumerId, "098765432109876543210987654321098765");
+    strncpy(consumer->consumerId, "098765432109876543210987654321098765", NS_UTILS_UUID_STRING_SIZE);
 
     std::shared_ptr<OIC::Service::NSConsumer> consumerTemp = std::make_shared<OIC::Service::NSConsumer>
             (consumer);
@@ -376,7 +376,7 @@ TEST_F(NotificationProviderServiceTest, ExpectEqualSetConsumerTopicsAndGetConsum
     std::string str1("TEST1");
     std::string str2("TEST2");
     ::NSConsumer *consumer = (::NSConsumer *)malloc(sizeof(::NSConsumer));
-    strcpy(consumer->consumerId, "098765432109876543210987654321098765");
+    strncpy(consumer->consumerId, "098765432109876543210987654321098765", NS_UTILS_UUID_STRING_SIZE);
 
     std::shared_ptr<OIC::Service::NSConsumer> consumerTemp = std::make_shared<OIC::Service::NSConsumer>
             (consumer);
index 9fe1559..8292132 100644 (file)
@@ -131,11 +131,13 @@ void* OCProcessThread(void * ptr)
 
 void input(char * buffer)
 {
-    char ch;
+    char ch = '\0';
     int i = 0;
 
     while( (ch = getchar()) != '\n' && i < 100)
+    {
         buffer[i++] = ch;
+    }
 
     buffer[i] = '\0';
 }
index b364d7b..677b595 100644 (file)
@@ -148,19 +148,21 @@ void removeTopics(NSTopicLL * topics)
 
 void input(char * buffer)
 {
-    char ch;
+    char ch = '\0';
     int i = 0;
 
     while( (ch = getchar()) != '\n' && i < 100)
+    {
         buffer[i++] = ch;
+    }
 
     buffer[i] = '\0';
 }
 
 int main()
 {
-    int num;
-    pthread_t processThread;
+    int num = 0;
+    pthread_t processThread = 0;
 
     printf("NSStartProvider()\n\n");
 
@@ -178,7 +180,7 @@ int main()
 
     while (!isExit)
     {
-        char dummy;
+        char dummy = '\0';
 
         printf("==============================================\n");
         printf("1.  NSStartProvider(Accepter: Provider) \n");
index 3698e71..cc7cbbb 100644 (file)
@@ -107,7 +107,7 @@ NSResult NSSendNotification(NSMessage *msg)
 {
     NS_LOG(DEBUG, "NSSendMessage - IN");
 
-    OCResourceHandle rHandle;
+    OCResourceHandle rHandle = NULL;
     OCObservationId obArray[255] = { 0, };
     size_t obCount = 0;
 
@@ -214,7 +214,7 @@ NSResult NSSendSync(NSSyncInfo *sync)
     OCObservationId obArray[255] = { 0, };
     size_t obCount = 0;
 
-    OCResourceHandle rHandle;
+    OCResourceHandle rHandle = NULL;
     if (NSPutSyncResource(sync, &rHandle) != NS_OK)
     {
         NS_LOG(ERROR, PCF("Fail to put sync resource"));
index c4d2b58..b5d8cb5 100644 (file)
@@ -79,7 +79,7 @@ NSResult NSCreateResource(char *uri)
         return NS_ERROR;
     }
 
-    uint8_t resourceProperties;
+    uint8_t resourceProperties = 0;
 
     if (strcmp(uri, NS_ROOT_URI) == 0)
     {
index 0893055..f9c619c 100644 (file)
@@ -37,6 +37,8 @@
 #include "NSConsumerCommunication.h"
 #include "NSConsumerInternalTaskController.h"
 
+#define NS_UUID_STRING_SIZE 37
+
 namespace
 {
     NSProvider * g_provider = NULL;
@@ -66,7 +68,7 @@ namespace
     const std::string testProviderID = "123456789012345678901234567890123456";
 
     static void NSNotificationReceivedCallback(NSMessage * message)
-        {
+    {
         if (0 != testProviderID.compare(message->providerId))
         {
             NSRemoveMessage(message);
@@ -302,7 +304,7 @@ namespace
         }
         provider->accessPolicy = NSSelector::NS_SELECTION_CONSUMER;
         provider->state = NS_DISCOVERED;
-        strcpy(provider->providerId, testProviderID.c_str());
+        strncpy(provider->providerId, testProviderID.c_str(), NS_UUID_STRING_SIZE);
         provider->messageUri = strdup("/notificationTest/message");
         provider->syncUri = strdup("/notificationTest/sync");
         provider->topicUri = strdup("/notificationTest/topic");
index 0a5390a..05e711e 100644 (file)
@@ -248,7 +248,7 @@ TEST_F(NotificationProviderTest, ExpectCallbackWhenReceiveSubscribeRequestWithAc
 
 TEST_F(NotificationProviderTest, NeverCallNotifyOnConsumerByAcceptIsFalse)
 {
-    int msgID;
+    int msgID = 0;
 
     ASSERT_NE(nullptr, g_consumerID) << "error: discovery failure";
 
@@ -281,7 +281,7 @@ TEST_F(NotificationProviderTest, NeverCallNotifyOnConsumerByAcceptIsFalse)
 
 TEST_F(NotificationProviderTest, ExpectCallNotifyOnConsumerByAcceptIsTrue)
 {
-    int msgID;
+    int msgID = 0;
 
     ASSERT_NE(nullptr, g_consumerID) << "error: discovery failure";
 
@@ -304,13 +304,13 @@ TEST_F(NotificationProviderTest, ExpectCallNotifyOnConsumerByAcceptIsTrue)
 
 TEST_F(NotificationProviderTest, ExpectCallbackSyncOnReadToConsumer)
 {
-    int id;
+    int id = 0;
     int type = NS_SYNC_READ;
 
     ASSERT_NE(nullptr, g_consumerID) << "error: discovery failure";
 
     NSMessage * msg = NSCreateMessage();
-    if(msg)
+    if (msg)
     {
         id = (int)msg->messageId;
         msg->title = g_title;
@@ -330,7 +330,7 @@ TEST_F(NotificationProviderTest, ExpectCallbackSyncOnReadToConsumer)
 
 TEST_F(NotificationProviderTest, ExpectCallbackSyncOnReadFromConsumer)
 {
-    int id;
+    int id = 0;
     int type = NS_SYNC_READ;
 
     ASSERT_NE(nullptr, g_consumerID) << "error: discovery failure";
@@ -494,8 +494,7 @@ TEST_F(NotificationProviderTest, ExpectEqualUnSetConsumerTopicsAndGetConsumerTop
 
 TEST_F(NotificationProviderTest, ExpectFailAcceptSubscription)
 {
-    NSResult result;
-    result = NS_SUCCESS;
+    NSResult result = NS_SUCCESS;
     result = NSAcceptSubscription(NULL, true);
     result = NSAcceptSubscription("\0", true);
 
@@ -504,8 +503,7 @@ TEST_F(NotificationProviderTest, ExpectFailAcceptSubscription)
 
 TEST_F(NotificationProviderTest, ExpectFailSendMessage)
 {
-    NSResult result;
-    result = NS_SUCCESS;
+    NSResult result = NS_SUCCESS;
     result = NSSendMessage(NULL);
 
     EXPECT_EQ(result, NS_FAIL);
@@ -513,8 +511,7 @@ TEST_F(NotificationProviderTest, ExpectFailSendMessage)
 
 TEST_F(NotificationProviderTest, ExpectFailRegisterTopic)
 {
-    NSResult result;
-    result = NS_SUCCESS;
+    NSResult result = NS_SUCCESS;
     result = NSProviderRegisterTopic(NULL);
     result = NSProviderRegisterTopic("\0");
 
@@ -523,8 +520,7 @@ TEST_F(NotificationProviderTest, ExpectFailRegisterTopic)
 
 TEST_F(NotificationProviderTest, ExpectFailUnregisterTopic)
 {
-    NSResult result;
-    result = NS_SUCCESS;
+    NSResult result = NS_SUCCESS;
     result = NSProviderUnregisterTopic(NULL);
     result = NSProviderUnregisterTopic("\0");
 
@@ -544,8 +540,7 @@ TEST_F(NotificationProviderTest, ExpectFailGetConsumerTopics)
 
 TEST_F(NotificationProviderTest, ExpectFailSetConsumerTopics)
 {
-    NSResult result;
-    result = NS_SUCCESS;
+    NSResult result = NS_SUCCESS;
     result = NSProviderSetConsumerTopic(NULL, NULL);
     result = NSProviderSetConsumerTopic(NULL, "\0");
     result = NSProviderSetConsumerTopic("\0", NULL);
@@ -560,8 +555,7 @@ TEST_F(NotificationProviderTest, ExpectFailSetConsumerTopics)
 
 TEST_F(NotificationProviderTest, ExpectFailUnsetConsumerTopics)
 {
-    NSResult result;
-    result = NS_SUCCESS;
+    NSResult result = NS_SUCCESS;
     result = NSProviderUnsetConsumerTopic(NULL, NULL);
     result = NSProviderUnsetConsumerTopic(NULL, "\0");
     result = NSProviderUnsetConsumerTopic("\0", NULL);
index 7a320b5..d9cf8ea 100644 (file)
@@ -447,8 +447,7 @@ TEST(NotificationProviderTest, ExpectFailSendMessageWithNULL)
 
 TEST(NotificationProviderTest, ExpectFailAcceptSubscription)
 {
-    NSResult result;
-    result = NS_SUCCESS;
+    NSResult result = NS_SUCCESS;
     result = NSAcceptSubscription(NULL, true);
     result = NSAcceptSubscription("\0", true);
 
@@ -457,8 +456,7 @@ TEST(NotificationProviderTest, ExpectFailAcceptSubscription)
 
 TEST(NotificationProviderTest, ExpectFailRegisterTopic)
 {
-    NSResult result;
-    result = NS_SUCCESS;
+    NSResult result = NS_SUCCESS;
     result = NSProviderRegisterTopic(NULL);
     result = NSProviderRegisterTopic("\0");
 
@@ -467,8 +465,7 @@ TEST(NotificationProviderTest, ExpectFailRegisterTopic)
 
 TEST(NotificationProviderTest, ExpectFailUnregisterTopic)
 {
-    NSResult result;
-    result = NS_SUCCESS;
+    NSResult result = NS_SUCCESS;
     result = NSProviderUnregisterTopic(NULL);
     result = NSProviderUnregisterTopic("\0");
 
@@ -477,7 +474,7 @@ TEST(NotificationProviderTest, ExpectFailUnregisterTopic)
 
 TEST(NotificationProviderTest, ExpectFailGetConsumerTopics)
 {
-    NSTopicLL topic;
+    NSTopicLL topic = { NULL, NS_TOPIC_UNSUBSCRIBED, NULL };
     NSTopicLL * topicLL = &topic;
 
     topicLL = NSProviderGetConsumerTopics(NULL);
@@ -488,8 +485,7 @@ TEST(NotificationProviderTest, ExpectFailGetConsumerTopics)
 
 TEST(NotificationProviderTest, ExpectFailSetConsumerTopics)
 {
-    NSResult result;
-    result = NS_SUCCESS;
+    NSResult result = NS_SUCCESS;
     result = NSProviderSetConsumerTopic(NULL, NULL);
     result = NSProviderSetConsumerTopic(NULL, "\0");
     result = NSProviderSetConsumerTopic("\0", NULL);
@@ -504,8 +500,7 @@ TEST(NotificationProviderTest, ExpectFailSetConsumerTopics)
 
 TEST(NotificationProviderTest, ExpectFailUnsetConsumerTopics)
 {
-    NSResult result;
-    result = NS_SUCCESS;
+    NSResult result = NS_SUCCESS;
     result = NSProviderUnsetConsumerTopic(NULL, NULL);
     result = NSProviderUnsetConsumerTopic(NULL, "\0");
     result = NSProviderUnsetConsumerTopic("\0", NULL);