Add missing null checks [IOT-1190]
authorveeraj.sk <veeraj.sk@samsung.com>
Tue, 21 Mar 2017 10:13:17 +0000 (15:43 +0530)
committerAshok Babu Channa <ashok.channa@samsung.com>
Mon, 3 Apr 2017 09:56:26 +0000 (09:56 +0000)
Add missing null checks after calling OICMalloc and
OICStrdup in bt_le_adapter/linux/client.c, caradapter.c
and ocpayload.c.

Change-Id: I57c82caa0dea117b19b548562fa27bad0b2f3ec6
Signed-off-by: Veeraj Khokale <veeraj.sk@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/18051
Tested-by: jenkins-iotivity <jenkins@iotivity.org>
Reviewed-by: Phil Coval <philippe.coval@osg.samsung.com>
Reviewed-by: Ashok Babu Channa <ashok.channa@samsung.com>
resource/csdk/connectivity/src/bt_le_adapter/linux/client.c
resource/csdk/connectivity/src/ra_adapter/caraadapter.c
resource/csdk/stack/src/ocpayload.c

index bc9b123..83c8ee1 100644 (file)
@@ -236,6 +236,16 @@ static bool CAGattClientSetupCharacteristics(
         if (strcasecmp(uuid, CA_GATT_REQUEST_CHRC_UUID) == 0)
         {
             char     * const addr = OICStrdup(address);
+
+            if (NULL == addr)
+            {
+                OIC_LOG(ERROR, TAG, "Could not duplicate addr");
+                g_variant_unref(uuid_prop);
+                g_object_unref(characteristic);
+                success = false;
+                break;
+            }
+
             gpointer * const chrc = g_object_ref(characteristic);
 
             // Map LE (MAC) address to request characteristic.
@@ -255,6 +265,16 @@ static bool CAGattClientSetupCharacteristics(
             char * const p    = OICStrdup(*path);
             char * const addr = OICStrdup(address);
 
+            if (NULL == addr || NULL == p)
+            {
+                OIC_LOG_V(ERROR, TAG,
+                          "OICStrdup failed, addr= %p, path= %p", addr, p);
+                g_variant_unref(uuid_prop);
+                g_object_unref(characteristic);
+                success = false;
+                break;
+            }
+
             // Map GATT service D-Bus object path to client address.
             if (!CAGattClientMapInsert(address_map, p, addr))
             {
index 141f7c9..2ce3cb8 100644 (file)
@@ -144,6 +144,13 @@ static void CARAUpdateObsList(int option, char *sid)
     if (option == OBSERVE_REGISTER)
     {
         obs_item_t *item = (obs_item_t *) OICMalloc(sizeof(*item));
+
+        if (NULL == item)
+        {
+            OIC_LOG(ERROR, RA_ADAPTER_TAG, "Memory allocation failed for obs item");
+            return;
+        }
+
         OICStrcpy(item->sessid, sizeof(item->sessid), sid);
         item->option = OBSERVE_REGISTER;
         ilist_add(g_observerList, item);
index 47cbb02..aefc908 100644 (file)
@@ -149,6 +149,7 @@ static void OCCopyPropertyValueArray(OCRepPayloadValue* dest, OCRepPayloadValue*
             for(size_t i = 0; i < dimTotal; ++i)
             {
                 dest->arr.strArray[i] = OICStrdup(source->arr.strArray[i]);
+                VERIFY_PARAM_NON_NULL(TAG, dest->arr.strArray[i], "Failed to duplicate string");
             }
             break;
         case OCREP_PROP_OBJECT: