Fix Windows build break
authorDan Mihai <Daniel.Mihai@microsoft.com>
Mon, 15 May 2017 17:59:35 +0000 (10:59 -0700)
committerDan Mihai <Daniel.Mihai@microsoft.com>
Tue, 16 May 2017 14:38:37 +0000 (14:38 +0000)
Verify that the block data ID is smaller than UINT8_MAX, then cast
its value to uint8_t.

Fixes compiler warning/error:

resource\csdk\connectivity\src\cablockwisetransfer.c(893):
error C2220: warning treated as error - no 'object' file generated

resource\csdk\connectivity\src\cablockwisetransfer.c(893):
warning C4267: 'function': conversion from 'size_t' to 'uint8_t',
possible loss of data

scons: *** [out\windows\amd64\debug\resource\csdk\connectivity\src\cablockwisetransfer.obj] Error 2

Change-Id: Iae032d52614cf6d10b8ec229430dddbb6f8ee114
Signed-off-by: Dan Mihai <Daniel.Mihai@microsoft.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/19927
Reviewed-by: Ibrahim Esmat <iesmat@microsoft.com>
Reviewed-by: Way Vadhanasin <wayvad@microsoft.com>
Reviewed-by: Kevin Kane <kkane@microsoft.com>
Tested-by: jenkins-iotivity <jenkins@iotivity.org>
Reviewed-by: Jaewook Jung <jw0213.jung@samsung.com>
Reviewed-by: Dave Thaler <dthaler@microsoft.com>
Reviewed-by: Phil Coval <philippe.coval@osg.samsung.com>
Reviewed-by: Ashok Babu Channa <ashok.channa@samsung.com>
resource/csdk/connectivity/src/cablockwisetransfer.c

index 9aa01bc..8d781e6 100644 (file)
@@ -889,8 +889,9 @@ static CABlockData_t* CACheckTheExistOfBlockData(const CABlockDataID_t* blockDat
         // Responses are not required to carry the Uri-Path but requests are
         if (cadata->requestInfo && !cadata->requestInfo->info.resourceUri)
         {
+            assert(blockDataID->idLength <= UINT8_MAX);
             CABlockMulticastData_t *currData = CAGetBlockMulticastDataFromListWithSeed(
-                (CAToken_t) blockDataID->id, blockDataID->idLength);
+                (CAToken_t) blockDataID->id, (uint8_t) blockDataID->idLength);
             if (currData)
             {
                 cadata->requestInfo->info.resourceUri = OICStrdup(currData->resourceUri);
@@ -943,9 +944,10 @@ CAResult_t CASetNextBlockOption1(coap_pdu_t *pdu, const CAEndpoint_t *endpoint,
             (CAToken_t)pdu->transport_hdr->udp.token,
             (uint8_t)pdu->transport_hdr->udp.token_length,
             endpoint->addr, endpoint->port);
-    if (NULL == blockDataID || blockDataID->idLength < 1)
+    if ((NULL == blockDataID) || (blockDataID->idLength < 1) || 
+        (blockDataID->idLength > UINT8_MAX))
     {
-        OIC_LOG(ERROR, TAG, "blockId is null");
+        OIC_LOG(ERROR, TAG, "blockId is incorrect");
         CADestroyBlockID(blockDataID);
         return CA_STATUS_FAILED;
     }
@@ -1088,9 +1090,10 @@ CAResult_t CASetNextBlockOption2(coap_pdu_t *pdu, const CAEndpoint_t *endpoint,
             (CAToken_t)pdu->transport_hdr->udp.token,
             (uint8_t)pdu->transport_hdr->udp.token_length,
             endpoint->addr, endpoint->port);
-    if (NULL == blockDataID || blockDataID->idLength < 1)
+    if ((NULL == blockDataID) || (blockDataID->idLength < 1) ||
+        (blockDataID->idLength > UINT8_MAX))
     {
-        OIC_LOG(ERROR, TAG, "blockId is null");
+        OIC_LOG(ERROR, TAG, "blockId is incorrect");
         CADestroyBlockID(blockDataID);
         return CA_STATUS_FAILED;
     }