Update snapshot(2018-01-24)
[platform/upstream/iotivity.git] / resource / src / InProcClientWrapper.cpp
index b4a2af8..ee47425 100644 (file)
@@ -1571,18 +1571,19 @@ namespace OC
             return nullptr;
         }
 
-        OCHeaderOption* options = new OCHeaderOption[headerOptions.size()];
-        int i = 0;
+        OCHeaderOption* options = new OCHeaderOption[headerOptions.size()]();
+
+        size_t numOptions = 0;
         for (auto it=headerOptions.begin(); it != headerOptions.end(); ++it)
         {
-            options[i] = OCHeaderOption();
-            options[i].protocolID = OC_COAP_ID;
-            options[i].optionID = it->getOptionID();
-            options[i].optionLength = it->getOptionData().length() + 1;
-            strncpy((char*)options[i].optionData, it->getOptionData().c_str(),
-                sizeof(options[i].optionLength) -1 );
-            options[i].optionData[sizeof(options[i].optionLength) - 1] = 0;
-            i++;
+            OCStackResult ret = OCSetHeaderOption(options, &numOptions, it->getOptionID(),
+                                    it->getOptionData().c_str(), it->getOptionData().length());
+            if (OC_STACK_OK != ret)
+            {
+                OIC_LOG_V(ERROR, TAG, "Failed to convert vnd header options! (error=%d)", ret);
+                delete[] options;
+                return nullptr;
+            }
         }
 
         return options;