Fix for SVACE issue. (#326) 93/191493/1
authorharish.191@samsung.com <harish.191@samsung.com>
Thu, 11 Oct 2018 09:18:35 +0000 (14:48 +0530)
committerAmit KS <amit.s12@samsung.com>
Wed, 17 Oct 2018 11:41:42 +0000 (17:11 +0530)
[CONPRO-1305] Fix for SVACE issue.

1. Add condition to stop receive negative value.
2. Check condition for thread creation successful.
3. Check return value of function.
4. Update type mismatch value assigned.

https://github.sec.samsung.net/RS7-IOTIVITY/IoTivity/pull/326
(cherry picked from commit cb27ef5e3947ffc529630e0792eff21f4d081f12)

Change-Id: I44aca78703df3fbbe61bd0772760df22fd6c3db9
Signed-off-by: Amit KS <amit.s12@samsung.com>
resource/csdk/connectivity/src/bt_le_adapter/caleadapter.c
resource/csdk/connectivity/src/cainterfacecontroller.c
resource/csdk/connectivity/src/tcp_adapter/catcpserver.c
resource/provisioning/examples/provisioningclient.cpp
resource/provisioning/src/OCProvisioningManager.cpp
service/notification/src/provider/NSProviderScheduler.c

index f0c924d..7ecbefa 100755 (executable)
@@ -1315,7 +1315,7 @@ static void CALEServerSendDataThread(void *threadData)
     uint32_t dataLen = 0;
     if (g_mtuSize > totalLength)
     {
-        length = totalLength;
+        length = (uint32_t)totalLength;
         dataLen = bleData->dataLen;
     }
     else
@@ -1616,7 +1616,7 @@ static void CALEClientSendDataThread(void *threadData)
     uint32_t dataLen = 0;
     if (g_mtuSize > totalLength)
     {
-        length = totalLength;
+        length = (uint32_t)totalLength;
         dataLen = bleData->dataLen;
     }
     else
index b72f79d..ead1050 100755 (executable)
@@ -482,7 +482,7 @@ CAResult_t CAGetNetworkInfo(CAEndpoint_t **info, uint32_t *size)
     }
 
     CAResult_t res = CA_STATUS_FAILED;
-    size_t resSize = 0;
+    uint32_t resSize = 0;
     for (uint32_t index = 0; index < g_numberOfAdapters; index++)
     {
         if (g_adapterHandler[index].GetnetInfo != NULL)
@@ -508,7 +508,7 @@ CAResult_t CAGetNetworkInfo(CAEndpoint_t **info, uint32_t *size)
         }
     }
 
-    OIC_LOG_V(DEBUG, TAG, "network info total size is %zu!", resSize);
+    OIC_LOG_V(DEBUG, TAG, "network info total size is %" PRIu32, resSize);
 
     if (resSize == 0)
     {
index 7cf9a71..e4dd27e 100644 (file)
@@ -1170,10 +1170,16 @@ void CATCPStopServer()
     CLOSE_SOCKET(ipv6s);
 #endif
 
-    close(caglobals.tcp.connectionFds[1]);
-    close(caglobals.tcp.connectionFds[0]);
-    caglobals.tcp.connectionFds[1] = OC_INVALID_SOCKET;
-    caglobals.tcp.connectionFds[0] = OC_INVALID_SOCKET;
+    if (caglobals.tcp.connectionFds[1] != OC_INVALID_SOCKET)
+    {
+       close(caglobals.tcp.connectionFds[1]);
+       caglobals.tcp.connectionFds[1] = OC_INVALID_SOCKET;
+    }
+    if (caglobals.tcp.connectionFds[0] != OC_INVALID_SOCKET)
+    {
+       close(caglobals.tcp.connectionFds[0]);
+       caglobals.tcp.connectionFds[0] = OC_INVALID_SOCKET;
+    }
 #ifndef __TIZENRT__
     if (caglobals.tcp.shutdownFds[1] != OC_INVALID_SOCKET)
     {
index 9c20bdd..880ae83 100644 (file)
@@ -892,7 +892,7 @@ static int saveTrustCert(void)
             }
             rewind(fp);
             fsize = fread(trustCertChainArray.data, 1, fsize, fp);
-            if(0 == fsize)
+            if (0 == fsize && ferror(fp))
             {
                 OIC_LOG(ERROR,TAG,"Read error");
             }
index e83b332..1ce0cca 100644 (file)
@@ -459,6 +459,7 @@ namespace OC
             }
             else
             {
+               delete context;
                 oclog() <<"Can not convert struuid to uuid";
             }
         }
index 2dddff0..7817ce6 100755 (executable)
@@ -149,7 +149,11 @@ bool NSStartScheduler()
                 ns_pthread_create(&NSThread[i], NSTopicSchedule, NULL, "IoT_NS_TopicSchedule",
                                   CONFIG_IOTIVITY_NS_TOPICSCHED_PTHREAD_STACKSIZE);
 #else
-                pthread_create(&NSThread[i], NULL, NSTopicSchedule, NULL);
+                if (pthread_create(&NSThread[i], NULL, NSTopicSchedule, NULL) != 0)
+                {
+                   NS_LOG(ERROR, "Unable to create the NSThread");
+                   return false;
+                }
 #endif
             }
                 break;