From 0f96ebce139ff9fc63069819e0e568adac8a6e3f Mon Sep 17 00:00:00 2001 From: Rahul Tank Date: Tue, 16 Nov 2021 10:43:25 +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 b95a092633..3b7c6ddf3c 100644 --- a/components/bt/controller/esp32/bt.c +++ b/components/bt/controller/esp32/bt.c @@ -1520,9 +1520,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);