Fix error in cablockwisetransfer.c
authorJaewook Jung <jw0213.jung@samsung.com>
Tue, 15 Mar 2016 10:44:32 +0000 (19:44 +0900)
committerAshok Babu Channa <ashok.channa@samsung.com>
Wed, 16 Mar 2016 11:48:57 +0000 (11:48 +0000)
In CACheckBlockDataValidation(), crash error occurs when sending response
as CACreateBlockDatablockId() tries to refer requestInfo only for sendData.

Change-Id: I2a7fc7ec17500f1c71e59d7181af81a77ac93705
Signed-off-by: Jaewook Jung <jw0213.jung@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/5923
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Ashok Babu Channa <ashok.channa@samsung.com>
resource/csdk/connectivity/src/cablockwisetransfer.c

index 9f93a6e..edcb299 100644 (file)
@@ -2364,10 +2364,27 @@ CAResult_t CACheckBlockDataValidation(const CAData_t *sendData, CABlockData_t **
     VERIFY_NON_NULL(sendData, TAG, "sendData");
     VERIFY_NON_NULL(blockData, TAG, "blockData");
 
-    CABlockDataID_t* blockDataID = CACreateBlockDatablockId(
-            (CAToken_t)sendData->requestInfo->info.token,
-            sendData->requestInfo->info.tokenLength,
-            sendData->remoteEndpoint->port);
+    CABlockDataID_t* blockDataID;
+    if(sendData->requestInfo)
+    {
+        blockDataID = CACreateBlockDatablockId(
+                            (CAToken_t)sendData->requestInfo->info.token,
+                            sendData->requestInfo->info.tokenLength,
+                            sendData->remoteEndpoint->port);
+    }
+    else if(sendData->responseInfo)
+    {
+        blockDataID = CACreateBlockDatablockId(
+                            (CAToken_t)sendData->responseInfo->info.token,
+                            sendData->responseInfo->info.tokenLength,
+                            sendData->remoteEndpoint->port);
+    }
+    else
+    {
+        OIC_LOG(ERROR, TAG, "sendData doesn't have requestInfo or responseInfo");
+        return CA_STATUS_FAILED;
+    }
+
     if (NULL == blockDataID || blockDataID->idLength < 1)
     {
         OIC_LOG(ERROR, TAG, "blockId is null");