replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / resource / csdk / stack / src / ocpayload.c
old mode 100644 (file)
new mode 100755 (executable)
index a04f840..a80eb21
@@ -52,9 +52,11 @@ void OCPayloadDestroy(OCPayload* payload)
         case PAYLOAD_TYPE_DISCOVERY:
             OCDiscoveryPayloadDestroy((OCDiscoveryPayload*)payload);
             break;
+#ifdef WITH_PRESENCE
         case PAYLOAD_TYPE_PRESENCE:
             OCPresencePayloadDestroy((OCPresencePayload*)payload);
             break;
+#endif
         case PAYLOAD_TYPE_SECURITY:
             OCSecurityPayloadDestroy((OCSecurityPayload*)payload);
             break;
@@ -222,7 +224,10 @@ static void OCFreeRepPayloadValueContents(OCRepPayloadValue* val)
 
     if (val->type == OCREP_PROP_STRING)
     {
-        OICFree(val->str);
+        if (val->str != NULL)
+        {
+            OICFree(val->str);
+        }
     }
     else if (val->type == OCREP_PROP_BYTE_STRING)
     {
@@ -245,28 +250,37 @@ static void OCFreeRepPayloadValueContents(OCRepPayloadValue* val)
                 OICFree(val->arr.iArray);
                 break;
             case OCREP_PROP_STRING:
-                for(size_t i = 0; i < dimTotal; ++i)
+                if (val->arr.strArray != NULL)
                 {
-                    OICFree(val->arr.strArray[i]);
+                    for(size_t i = 0; i < dimTotal; ++i)
+                    {
+                        OICFree(val->arr.strArray[i]);
+                    }
+                    OICFree(val->arr.strArray);
                 }
-                OICFree(val->arr.strArray);
                 break;
             case OCREP_PROP_BYTE_STRING:
-                for (size_t i = 0; i < dimTotal; ++i)
+                if (val->arr.ocByteStrArray != NULL)
                 {
-                    if (val->arr.ocByteStrArray[i].bytes)
+                    for (size_t i = 0; i < dimTotal; ++i)
                     {
-                        OICFree(val->arr.ocByteStrArray[i].bytes);
+                        if (val->arr.ocByteStrArray[i].bytes)
+                        {
+                            OICFree(val->arr.ocByteStrArray[i].bytes);
+                        }
                     }
+                    OICFree(val->arr.ocByteStrArray);
                 }
-                OICFree(val->arr.ocByteStrArray);
                 break;
             case OCREP_PROP_OBJECT: // This case is the temporary fix for string input
-                for(size_t i = 0; i< dimTotal; ++i)
+                if (val->arr.objArray != NULL)
                 {
-                    OCRepPayloadDestroy(val->arr.objArray[i]);
+                    for(size_t i = 0; i< dimTotal; ++i)
+                    {
+                        OCRepPayloadDestroy(val->arr.objArray[i]);
+                    }
+                    OICFree(val->arr.objArray);
                 }
-                OICFree(val->arr.objArray);
                 break;
             case OCREP_PROP_NULL:
             case OCREP_PROP_ARRAY:
@@ -818,7 +832,7 @@ bool OCRepPayloadGetPropPubDataType(const OCRepPayload *payload, const char *nam
         else
         {
             value->data = val.bytes;
-            value->len  = strlen(val.bytes);
+            value->len  = strlen((char *)val.bytes);
         }
     }
     else
@@ -1454,7 +1468,7 @@ OCStringLL* OCCreateOCStringLL(const char* text)
         {
             break;
         }
-        iter = (OCStringLL *)OICCalloc(1,sizeof(OCStringLL));
+        iter = (OCStringLL *)OICCalloc(1, sizeof(OCStringLL));
         VERIFY_PARAM_NON_NULL(TAG, iter, "Failed allocating memory");
         if (!result)
         {
@@ -1467,7 +1481,6 @@ OCStringLL* OCCreateOCStringLL(const char* text)
         iter->value = OICStrdup(token);
         VERIFY_PARAM_NON_NULL(TAG, iter->value, "Failed allocating memory");
         prev = iter;
-        iter = iter->next;
     }
     OICFree(backup);
     return result;
@@ -1895,7 +1908,6 @@ void OCDiscoveryPayloadDestroy(OCDiscoveryPayload* payload)
     }
     OICFree(payload->sid);
     OICFree(payload->baseURI);
-    OICFree(payload->uri);
     OCFreeOCStringLL(payload->type);
     OICFree(payload->name);
     OCFreeOCStringLL(payload->iface);
@@ -1904,6 +1916,7 @@ void OCDiscoveryPayloadDestroy(OCDiscoveryPayload* payload)
     OICFree(payload);
 }
 
+#ifdef WITH_PRESENCE
 OCPresencePayload* OCPresencePayloadCreate(uint32_t seqNum, uint32_t maxAge,
         OCPresenceTrigger trigger, const char* resourceType)
 {
@@ -1930,3 +1943,4 @@ void OCPresencePayloadDestroy(OCPresencePayload* payload)
     OICFree(payload->resourceType);
     OICFree(payload);
 }
+#endif // WITH_PRESENCE
\ No newline at end of file