From 2af221aafddda07048ab077a69361d27197b571b Mon Sep 17 00:00:00 2001 From: Jaewook Jung Date: Fri, 10 Feb 2017 16:26:51 +0900 Subject: [PATCH] Fixed memory leak on CARetransmissionDestroy Change-Id: Ic53ae0759020fa26f5f70425d3dab09ff5e7d375 Signed-off-by: Jaewook Jung Reviewed-on: https://gerrit.iotivity.org/gerrit/17207 Tested-by: jenkins-iotivity Reviewed-by: Ashok Babu Channa --- resource/csdk/connectivity/src/caretransmission.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/resource/csdk/connectivity/src/caretransmission.c b/resource/csdk/connectivity/src/caretransmission.c index f9cb544..0f78f31 100644 --- a/resource/csdk/connectivity/src/caretransmission.c +++ b/resource/csdk/connectivity/src/caretransmission.c @@ -638,6 +638,20 @@ CAResult_t CARetransmissionDestroy(CARetransmission_t *context) OIC_LOG(DEBUG, TAG, "retransmission context destroy.."); + oc_mutex_lock(context->threadMutex); + uint32_t len = u_arraylist_length(context->dataList); + for (uint32_t i = 0; i < len; i++) + { + CARetransmissionData_t *data = u_arraylist_get(context->dataList, i); + if (NULL == data) + { + continue; + } + CAFreeEndpoint(data->endpoint); + OICFree(data->pdu); + } + oc_mutex_unlock(context->threadMutex); + oc_mutex_free(context->threadMutex); context->threadMutex = NULL; oc_cond_free(context->threadCond); -- 2.7.4