Przeglądaj źródła

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.
Rahul Tank 4 lat temu
rodzic
commit
c2a94ba1aa
1 zmienionych plików z 12 dodań i 3 usunięć
  1. 12 3
      components/bt/controller/bt.c

+ 12 - 3
components/bt/controller/bt.c

@@ -1519,9 +1519,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);