unneccessary parsing logic is running
when received data is wrong.
it should be prevented.
Change-Id: Ic36359ae96f0aaa7321a1f1e8ed2d5d086ba1198
Signed-off-by: jihwan.seo <jihwan.seo@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/15743
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Ashok Babu Channa <ashok.channa@samsung.com>
VERIFY_NON_NULL_VOID(sep, TAG, "remoteEndpoint");
VERIFY_NON_NULL_VOID(data, TAG, "data");
VERIFY_NON_NULL_VOID(sep, TAG, "remoteEndpoint");
VERIFY_NON_NULL_VOID(data, TAG, "data");
+ if (0 == dataLen)
+ {
+ OIC_LOG(ERROR, TAG, "dataLen is zero");
+ return;
+ }
+
uint32_t code = CA_NOT_FOUND;
CAData_t *cadata = NULL;
uint32_t code = CA_NOT_FOUND;
CAData_t *cadata = NULL;
CAResult_t result)
{
OIC_LOG(DEBUG, TAG, "CAErrorHandler IN");
CAResult_t result)
{
OIC_LOG(DEBUG, TAG, "CAErrorHandler IN");
VERIFY_NON_NULL_VOID(endpoint, TAG, "remoteEndpoint");
VERIFY_NON_NULL_VOID(data, TAG, "data");
VERIFY_NON_NULL_VOID(endpoint, TAG, "remoteEndpoint");
VERIFY_NON_NULL_VOID(data, TAG, "data");
+ if (0 == dataLen)
+ {
+ OIC_LOG(ERROR, TAG, "dataLen is zero");
+ return;
+ }
+
+#ifndef SINGLE_THREAD
uint32_t code = CA_NOT_FOUND;
//Do not free remoteEndpoint and data. Currently they will be freed in data thread
//Get PDU data
uint32_t code = CA_NOT_FOUND;
//Do not free remoteEndpoint and data. Currently they will be freed in data thread
//Get PDU data
CAQueueingThreadAddData(&g_receiveThread, cadata, sizeof(CAData_t));
coap_delete_pdu(pdu);
CAQueueingThreadAddData(&g_receiveThread, cadata, sizeof(CAData_t));
coap_delete_pdu(pdu);
#endif
OIC_LOG(DEBUG, TAG, "CAErrorHandler OUT");
#endif
OIC_LOG(DEBUG, TAG, "CAErrorHandler OUT");