From c37642dbb91c0dcc12c121a96d05bce7d1784a20 Mon Sep 17 00:00:00 2001 From: Vikas Gupta Date: Wed, 15 Jul 2015 13:40:08 +0530 Subject: [PATCH] Memory Leak recources not released in case of failure. Multiple Mutex are initialized in this function, if one of them fails previous allocated resources should be released. Change-Id: I869cfce4dce6c3858443833df523b6234eae3761 Signed-off-by: Vikas Gupta Reviewed-on: https://gerrit.iotivity.org/gerrit/1664 Tested-by: jenkins-iotivity Reviewed-by: Erich Keane --- resource/csdk/connectivity/src/bt_le_adapter/caleadapter.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/resource/csdk/connectivity/src/bt_le_adapter/caleadapter.c b/resource/csdk/connectivity/src/bt_le_adapter/caleadapter.c index 4fc3299..afd362e 100644 --- a/resource/csdk/connectivity/src/bt_le_adapter/caleadapter.c +++ b/resource/csdk/connectivity/src/bt_le_adapter/caleadapter.c @@ -1146,6 +1146,7 @@ CAResult_t CAInitLEAdapterMutex() if (NULL == g_bleNetworkCbMutex) { OIC_LOG(ERROR, CALEADAPTER_TAG, "ca_mutex_new failed"); + CATerminateLEAdapterMutex(); return CA_STATUS_FAILED; } } @@ -1156,6 +1157,7 @@ CAResult_t CAInitLEAdapterMutex() if (NULL == g_bleLocalAddressMutex) { OIC_LOG(ERROR, CALEADAPTER_TAG, "ca_mutex_new failed"); + CATerminateLEAdapterMutex(); return CA_STATUS_FAILED; } } @@ -1166,6 +1168,7 @@ CAResult_t CAInitLEAdapterMutex() if (NULL == g_bleAdapterThreadPoolMutex) { OIC_LOG(ERROR, CALEADAPTER_TAG, "ca_mutex_new failed"); + CATerminateLEAdapterMutex(); return CA_STATUS_FAILED; } } @@ -1176,6 +1179,7 @@ CAResult_t CAInitLEAdapterMutex() if (NULL == g_bleClientSendDataMutex) { OIC_LOG(ERROR, CALEADAPTER_TAG, "ca_mutex_new failed"); + CATerminateLEAdapterMutex(); return CA_STATUS_FAILED; } } @@ -1186,6 +1190,7 @@ CAResult_t CAInitLEAdapterMutex() if (NULL == g_bleClientReceiveDataMutex) { OIC_LOG(ERROR, CALEADAPTER_TAG, "ca_mutex_new failed"); + CATerminateLEAdapterMutex(); return CA_STATUS_FAILED; } } @@ -1196,6 +1201,7 @@ CAResult_t CAInitLEAdapterMutex() if (NULL == g_bleServerSendDataMutex) { OIC_LOG(ERROR, CALEADAPTER_TAG, "ca_mutex_new failed"); + CATerminateLEAdapterMutex(); return CA_STATUS_FAILED; } } @@ -1206,6 +1212,7 @@ CAResult_t CAInitLEAdapterMutex() if (NULL == g_bleServerReceiveDataMutex) { OIC_LOG(ERROR, CALEADAPTER_TAG, "ca_mutex_new failed"); + CATerminateLEAdapterMutex(); return CA_STATUS_FAILED; } } @@ -1216,6 +1223,7 @@ CAResult_t CAInitLEAdapterMutex() if (NULL == g_bleAdapterReqRespCbMutex) { OIC_LOG(ERROR, CALEADAPTER_TAG, "ca_mutex_new failed"); + CATerminateLEAdapterMutex(); return CA_STATUS_FAILED; } } -- 2.7.4