From: sourav bhuwalka Date: Wed, 3 Jul 2019 08:59:18 +0000 (+0530) Subject: [CONPRO-1454]:[VD][DF190528-00531] Crash X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7ebd34dd7ec14cf31ffdf078ccb2bc0b981660c6;p=platform%2Fupstream%2Fiotivity.git [CONPRO-1454]:[VD][DF190528-00531] Crash resHandle is being freed twice once in DeleteClientCB and once in OICFree(resHandle) in OCDoRequest in exit condition. So freeing resHandle only if clientCB is NULL https://github.sec.samsung.net/RS7-IOTIVITY/IoTivity/pull/532/commits/b63e8200da46aa3e5505288bcf284568798a6069 (cherry-picked from b63e8200da46aa3e5505288bcf284568798a6069) Change-Id: I486cfb9038524292be6d311302719e36fce5aaa4 Signed-off-by: sourav bhuwalka Signed-off-by: Sudipto Bal --- diff --git a/resource/csdk/stack/src/ocstack.c b/resource/csdk/stack/src/ocstack.c index 240920f..caed6d9 100644 --- a/resource/csdk/stack/src/ocstack.c +++ b/resource/csdk/stack/src/ocstack.c @@ -3181,13 +3181,19 @@ exit: { cbData->cd(cbData->context); } - FindAndDeleteClientCB(clientCB); - CADestroyToken(token); + if (!clientCB) // token and resHandle associated with clientCB + { + CADestroyToken(token); + OICFree(resHandle); + } + else + { + FindAndDeleteClientCB(clientCB); + } if (handle) { *handle = NULL; } - OICFree(resHandle); } OICFree(requestInfo.info.payload);