[CONPRO-1561] Crash in memcpy
[platform/upstream/iotivity.git] / resource / csdk / connectivity / common / src / caremotehandler.c
index 6a7fea2..638c04f 100644 (file)
@@ -115,11 +115,17 @@ CAResponseInfo_t *CACloneResponseInfo(const CAResponseInfo_t *rep)
         case CA_BAD_OPT:
         case CA_FORBIDDEN_REQ:
         case CA_NOT_FOUND:
+        case CA_METHOD_NOT_ALLOWED:
         case CA_NOT_ACCEPTABLE:
         case CA_REQUEST_ENTITY_INCOMPLETE:
         case CA_REQUEST_ENTITY_TOO_LARGE:
+        case CA_TOO_MANY_REQUESTS:
         case CA_INTERNAL_SERVER_ERROR:
+        case CA_NOT_IMPLEMENTED:
+        case CA_BAD_GATEWAY:
+        case CA_SERVICE_UNAVAILABLE:
         case CA_RETRANSMIT_TIMEOUT:
+        case CA_PROXY_NOT_SUPPORTED:
             break;
         default:
             OIC_LOG_V(ERROR, TAG, "Response code  %u is invalid", rep->result);
@@ -178,6 +184,11 @@ void CAFreeEndpoint(CAEndpoint_t *rep)
 
 static void CADestroyInfoInternal(CAInfo_t *info)
 {
+    if (NULL == info)
+    {
+        return;
+    }
+
     // free token field
     OICFree(info->token);
     info->token = NULL;
@@ -250,7 +261,7 @@ CAResult_t CACloneInfo(const CAInfo_t *info, CAInfo_t *clone)
         // allocate token field
         uint8_t len = info->tokenLength;
 
-        char *temp = (char *) OICMalloc(len * sizeof(char));
+        char *temp = (char *) OICCalloc(1, (len + 1) * sizeof(char));
         if (!temp)
         {
             OIC_LOG(ERROR, TAG, "CACloneInfo Out of memory");