From 1891761fbb61da2ff8ca5ee187247c31b97ef1ae Mon Sep 17 00:00:00 2001 From: Rahul Tank Date: Tue, 16 Nov 2021 10:36:46 +0530 Subject: [PATCH] ESP32: Fix memory leak in controller deinit function Added change to dealloc s_pm_lock in controller deinit as it gets allocated during init procedure. Closes https://github.com/espressif/esp-idf/issues/7653 --- components/bt/controller/esp32/bt.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/components/bt/controller/esp32/bt.c b/components/bt/controller/esp32/bt.c index 09cdee59f7..c6162ce7a7 100644 --- a/components/bt/controller/esp32/bt.c +++ b/components/bt/controller/esp32/bt.c @@ -1760,9 +1760,18 @@ esp_err_t esp_bt_controller_deinit(void) esp_pm_lock_delete(s_light_sleep_pm_lock); s_light_sleep_pm_lock = NULL; } - esp_timer_stop(s_btdm_slp_tmr); - esp_timer_delete(s_btdm_slp_tmr); - s_btdm_slp_tmr = NULL; + + if (s_pm_lock != NULL) { + esp_pm_lock_delete(s_pm_lock); + s_pm_lock = NULL; + } + + if (s_btdm_slp_tmr != NULL) { + esp_timer_stop(s_btdm_slp_tmr); + esp_timer_delete(s_btdm_slp_tmr); + s_btdm_slp_tmr = NULL; + } + s_pm_lock_acquired = false; #endif semphr_delete_wrapper(s_wakeup_req_sem);