From e4225026b53885960d2bc97f76fc10d565d8e513 Mon Sep 17 00:00:00 2001 From: Zhou Xiao Date: Fri, 14 Mar 2025 11:23:16 +0800 Subject: [PATCH] fix(ble): fix ble log init failure mem leak for ESP32-C3 --- components/bt/controller/esp32c3/bt.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/components/bt/controller/esp32c3/bt.c b/components/bt/controller/esp32c3/bt.c index f6320b02fd..ff82eb3655 100644 --- a/components/bt/controller/esp32c3/bt.c +++ b/components/bt/controller/esp32c3/bt.c @@ -539,7 +539,7 @@ static void esp_bt_controller_log_interface(uint32_t len, const uint8_t *addr, b #if CONFIG_BT_CTRL_LE_LOG_SPI_OUT_EN static IRAM_ATTR void esp_bt_controller_spi_log_interface(uint32_t len, const uint8_t *addr, bool end) { - return ble_log_spi_out_write(BLE_LOG_SPI_OUT_SOURCE_ESP_LEGACY, addr, len); + ble_log_spi_out_write(BLE_LOG_SPI_OUT_SOURCE_ESP_LEGACY, addr, len); } #endif // CONFIG_BT_CTRL_LE_LOG_SPI_OUT_EN @@ -1755,7 +1755,10 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg) #endif #if CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED - ble_log_spi_out_init(); + if (ble_log_spi_out_init() != 0) { + ESP_LOGE(BT_LOG_TAG, "BLE Log SPI output init failed"); + goto error; + } #endif // CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED periph_module_enable(PERIPH_BT_MODULE); @@ -1790,6 +1793,10 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg) error: +#if CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED + ble_log_spi_out_deinit(); +#endif // CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED + bt_controller_deinit_internal(); return err;