Update snapshot(2018-01-04)
[platform/upstream/iotivity.git] / resource / csdk / stack / src / ocserverrequest.c
index 9241a5f..91d7e1c 100644 (file)
@@ -102,6 +102,7 @@ static void DeleteServerRequest(OCServerRequest * serverRequest)
     {
         LL_DELETE(serverRequestList, serverRequest);
         OICFree(serverRequest->requestToken);
+        OICFree(serverRequest->rcvdVendorSpecificHeaderOptions);
         OICFree(serverRequest);
         serverRequest = NULL;
         OIC_LOG(INFO, TAG, "Server Request Removed!!");
@@ -306,8 +307,12 @@ OCStackResult AddServerRequest (OCServerRequest ** request, uint16_t coapID,
 
     if(rcvdVendorSpecificHeaderOptions)
     {
+        serverRequest->rcvdVendorSpecificHeaderOptions =
+                    (OCHeaderOption *) OICCalloc(numRcvdVendorSpecificHeaderOptions, sizeof(OCHeaderOption));
+        VERIFY_NON_NULL(serverRequest->rcvdVendorSpecificHeaderOptions);
+
         memcpy(serverRequest->rcvdVendorSpecificHeaderOptions, rcvdVendorSpecificHeaderOptions,
-            MAX_HEADER_OPTIONS * sizeof(OCHeaderOption));
+            numRcvdVendorSpecificHeaderOptions * sizeof(OCHeaderOption));
     }
     if(payload && reqTotalSize)
     {
@@ -348,6 +353,7 @@ exit:
     if (serverRequest)
     {
         OICFree(serverRequest->requestToken);
+        OICFree(serverRequest->rcvdVendorSpecificHeaderOptions);
         OICFree(serverRequest);
         serverRequest = NULL;
     }