Check validity before free-ing options pointer.
authorMandeep Shetty <mandeep.shetty@intel.com>
Sat, 14 Mar 2015 00:08:02 +0000 (17:08 -0700)
committerSudarshan Prasad <sudarshan.prasad@intel.com>
Mon, 16 Mar 2015 15:59:11 +0000 (15:59 +0000)
Free pointer only if pointer is valid decided on basis of
number of options preset in the header.

Change-Id: I21666e4f694652120ed164ffc763b0aeeb0ea951
Signed-off-by: Mandeep Shetty <mandeep.shetty@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/476
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Sashi Penta <sashi.kumar.penta@intel.com>
Reviewed-by: Sudarshan Prasad <sudarshan.prasad@intel.com>
resource/csdk/connectivity/src/caremotehandler.c

index 2e67030..76c3428 100644 (file)
@@ -451,8 +451,10 @@ void CADestroyRequestInfoInternal(CARequestInfo_t *rep)
     OICFree((char *) rep->info.token);
 
     // free options field
-    OICFree((CAHeaderOption_t *) rep->info.options);
-
+    if (rep->info.options != NULL && rep->info.numOptions)
+    {
+        OICFree((CAHeaderOption_t *) rep->info.options);
+    }
     // free payload field
     OICFree((char *) rep->info.payload);