fix crash issue related transmission for large data
authorjihwan.seo <jihwan.seo@samsung.com>
Mon, 5 Dec 2016 22:25:23 +0000 (07:25 +0900)
committerDan Mihai <Daniel.Mihai@microsoft.com>
Fri, 9 Dec 2016 16:10:04 +0000 (16:10 +0000)
Change-Id: I88dbef87f5e02a0d4e0c0903a3d1734088d82401
Signed-off-by: jihwan.seo <jihwan.seo@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/15167
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Jaehong Jo <jaehong.jo@samsung.com>
Reviewed-by: Greg Zaverucha <gregz@microsoft.com>
Reviewed-by: Dan Mihai <Daniel.Mihai@microsoft.com>
resource/csdk/connectivity/src/camessagehandler.c

index f5bbec4..18cb16f 100644 (file)
@@ -1427,18 +1427,18 @@ static void CALogPDUInfo(const CAData_t *data, const coap_pdu_t *pdu)
         {
             OIC_LOG_V(DEBUG, ANALYZER_TAG, "Payload Format = [%d]", info->payloadFormat);
         }
-
-        OIC_LOG_V(DEBUG, ANALYZER_TAG, "CoAP Message Full Size = [%d]", pdu->length);
-        OIC_LOG(DEBUG, ANALYZER_TAG, "CoAP Header (+ 0xFF)");
-        OIC_LOG_BUFFER(DEBUG, ANALYZER_TAG,  (const uint8_t *) pdu->transport_hdr,
-                       pdu->length - info->payloadSize);
-        OIC_LOG_V(DEBUG, ANALYZER_TAG, "CoAP Header size = [%d]", pdu->length - info->payloadSize);
-
-        OIC_LOG_V(DEBUG, ANALYZER_TAG, "CoAP Payload");
-        OIC_LOG_BUFFER(DEBUG, ANALYZER_TAG, info->payload, info->payloadSize);
-        OIC_LOG_V(DEBUG, ANALYZER_TAG, "CoAP Payload Size = [%d]", info->payloadSize);
     }
 
+    size_t payloadLen = (pdu->data) ? (unsigned char *) pdu->hdr + pdu->length - pdu->data : 0;
+    OIC_LOG_V(DEBUG, ANALYZER_TAG, "CoAP Message Full Size = [%lu]", pdu->length);
+    OIC_LOG(DEBUG, ANALYZER_TAG, "CoAP Header (+ 0xFF)");
+    OIC_LOG_BUFFER(DEBUG, ANALYZER_TAG,  (const uint8_t *) pdu->transport_hdr,
+                   pdu->length - payloadLen);
+    OIC_LOG_V(DEBUG, ANALYZER_TAG, "CoAP Header size = [%lu]", pdu->length - payloadLen);
+
+    OIC_LOG_V(DEBUG, ANALYZER_TAG, "CoAP Payload");
+    OIC_LOG_BUFFER(DEBUG, ANALYZER_TAG, pdu->data, payloadLen);
+    OIC_LOG_V(DEBUG, ANALYZER_TAG, "CoAP Payload Size = [%lu]", payloadLen);
     OIC_LOG(DEBUG, ANALYZER_TAG, "=================================================");
 }
 #else