From d5758cd823728326fb798f9331a084c46fdf18fb Mon Sep 17 00:00:00 2001 From: yangfeng Date: Fri, 22 Aug 2025 12:08:48 +0800 Subject: [PATCH 1/2] fix(esp_coex): Fix the issue of uninitialized pointer reading in coexist_printf --- components/esp_coex/src/lib_printf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/esp_coex/src/lib_printf.c b/components/esp_coex/src/lib_printf.c index 265874399f..a8429225b4 100644 --- a/components/esp_coex/src/lib_printf.c +++ b/components/esp_coex/src/lib_printf.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2016-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2016-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -44,7 +44,7 @@ static int lib_printf(const char* tag, const char* format, va_list arg) int coexist_printf(const char* format, ...) { - va_list arg; + va_list arg = {}; va_start(arg, format); int res = lib_printf("coexist", format, arg); va_end(arg); From 4e39ac7d490f94b5d69a17bb404d4d85470c0f34 Mon Sep 17 00:00:00 2001 From: yangfeng Date: Fri, 22 Aug 2025 16:17:59 +0800 Subject: [PATCH 2/2] fix(bt/btc): Fix array compared against 0 in btc_manage.c --- components/bt/common/btc/core/btc_manage.c | 27 ++++++++++++---------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/components/bt/common/btc/core/btc_manage.c b/components/bt/common/btc/core/btc_manage.c index e65e107988..4b63f1efba 100644 --- a/components/bt/common/btc/core/btc_manage.c +++ b/components/bt/common/btc/core/btc_manage.c @@ -8,19 +8,20 @@ #include "btc/btc_task.h" #include "osi/thread.h" -#if BTC_DYNAMIC_MEMORY == FALSE -void *btc_profile_cb_tab[BTC_PID_NUM] = {}; -#else +#if BTC_DYNAMIC_MEMORY == TRUE void **btc_profile_cb_tab; +#else +void *btc_profile_cb_tab[BTC_PID_NUM] = {}; #endif void esp_profile_cb_reset(void) { - #if BTC_DYNAMIC_MEMORY == TRUE - if (btc_profile_cb_tab == NULL) { +#if BTC_DYNAMIC_MEMORY == TRUE + void *p = btc_profile_cb_tab; + if (p == NULL) { return; } - #endif +#endif int i; @@ -31,11 +32,12 @@ void esp_profile_cb_reset(void) int btc_profile_cb_set(btc_pid_t profile_id, void *cb) { - #if BTC_DYNAMIC_MEMORY == TRUE - if (btc_profile_cb_tab == NULL) { +#if BTC_DYNAMIC_MEMORY == TRUE + void *p = btc_profile_cb_tab; + if (p == NULL) { return -1; } - #endif +#endif if (profile_id < 0 || profile_id >= BTC_PID_NUM) { return -1; @@ -48,11 +50,12 @@ int btc_profile_cb_set(btc_pid_t profile_id, void *cb) void *btc_profile_cb_get(btc_pid_t profile_id) { - #if BTC_DYNAMIC_MEMORY == TRUE - if (btc_profile_cb_tab == NULL) { +#if BTC_DYNAMIC_MEMORY == TRUE + void *p = btc_profile_cb_tab; + if (p == NULL) { return NULL; } - #endif +#endif if (profile_id < 0 || profile_id >= BTC_PID_NUM) { return NULL;