From da234609df53e32ced12b68cb7d66f2f2b7799fd Mon Sep 17 00:00:00 2001 From: ushiboy Date: Sun, 31 Jan 2021 22:28:38 +0900 Subject: [PATCH 1/3] Fixed crash on delete after disconnect --- libraries/BLE/src/BLEClient.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/BLE/src/BLEClient.cpp b/libraries/BLE/src/BLEClient.cpp index 9d947710e94..db7a588dd16 100644 --- a/libraries/BLE/src/BLEClient.cpp +++ b/libraries/BLE/src/BLEClient.cpp @@ -60,6 +60,7 @@ BLEClient::~BLEClient() { delete myPair.second; } m_servicesMap.clear(); + m_servicesMapByInstID.clear(); } // ~BLEClient From f8a70c6b51edea8b5964b6bec2d2bc5c42075f5f Mon Sep 17 00:00:00 2001 From: ushiboy Date: Mon, 1 Feb 2021 22:08:54 +0900 Subject: [PATCH 2/3] Fixed memory leak when getting characteristics --- libraries/BLE/src/BLERemoteCharacteristic.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/BLE/src/BLERemoteCharacteristic.cpp b/libraries/BLE/src/BLERemoteCharacteristic.cpp index 5b322c30f21..66445611fcd 100644 --- a/libraries/BLE/src/BLERemoteCharacteristic.cpp +++ b/libraries/BLE/src/BLERemoteCharacteristic.cpp @@ -52,6 +52,10 @@ BLERemoteCharacteristic::BLERemoteCharacteristic( */ BLERemoteCharacteristic::~BLERemoteCharacteristic() { removeDescriptors(); // Release resources for any descriptor information we may have allocated. + if (m_rawData != nullptr) + { + free(m_rawData); + } } // ~BLERemoteCharacteristic From dcc3978c3a82d60e07d6e13e0b5e4695ac00eaa3 Mon Sep 17 00:00:00 2001 From: ushiboy Date: Tue, 2 Feb 2021 22:21:37 +0900 Subject: [PATCH 3/3] Removed guard --- libraries/BLE/src/BLERemoteCharacteristic.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/libraries/BLE/src/BLERemoteCharacteristic.cpp b/libraries/BLE/src/BLERemoteCharacteristic.cpp index 66445611fcd..86a4655de3b 100644 --- a/libraries/BLE/src/BLERemoteCharacteristic.cpp +++ b/libraries/BLE/src/BLERemoteCharacteristic.cpp @@ -52,10 +52,7 @@ BLERemoteCharacteristic::BLERemoteCharacteristic( */ BLERemoteCharacteristic::~BLERemoteCharacteristic() { removeDescriptors(); // Release resources for any descriptor information we may have allocated. - if (m_rawData != nullptr) - { - free(m_rawData); - } + free(m_rawData); } // ~BLERemoteCharacteristic