[IOT-IOT-2739] Simulator plugin crash 85/22585/4
authorHarry <h.marappa@samsung.com>
Mon, 25 Sep 2017 07:06:30 +0000 (12:36 +0530)
committerUze Choi <uzchoi@samsung.com>
Thu, 28 Sep 2017 09:10:32 +0000 (09:10 +0000)
Simulator server plugin crashed due to heap corruption.
Observe option being added for cancel observe response
where space for observe option will not be allocated in case
of observe cancel.

Change-Id: I29aa321e37070e490b7c3c3ec5d09c34be977cc6
Signed-off-by: Harry <h.marappa@samsung.com>
resource/csdk/stack/src/ocserverrequest.c

index dcb73c8..6ed60b1 100644 (file)
@@ -658,7 +658,10 @@ OCStackResult HandleSingleResponse(OCEntityHandlerResponse * ehResponse)
 
         // TODO: This exposes CoAP specific details.  At some point, this should be
         // re-factored and handled in the CA layer.
-        if(serverRequest->observeResult == OC_STACK_OK)
+        // Stack sets MAX_SEQUENCE_NUMBER+1 to sequence number on observe cancel request.
+        // And observe option should not be part of CoAP response for observe cancel request.
+        if(serverRequest->observeResult == OC_STACK_OK
+           && serverRequest->observationOption != MAX_SEQUENCE_NUMBER + 1)
         {
             responseInfo.info.options[0].protocolID = CA_COAP_ID;
             responseInfo.info.options[0].optionID = COAP_OPTION_OBSERVE;