From d0395070c35cf583d508cd95aad8e743570a1279 Mon Sep 17 00:00:00 2001 From: "wanglai@espressif.com" Date: Tue, 22 Aug 2023 14:36:57 +0800 Subject: [PATCH] fix(bt/avdtp): Reject SET CONFIGURATION command with error code INVALID_CODEC_TYPE 1: reset p_scb->avdt_handle in cleanup function. 2: cancel comparing p_scb->codec_type and p_scb->seps[xx].codec_type to send the error INVALID_CODEC_TYPE. --- components/bt/host/bluedroid/bta/av/bta_av_aact.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/bt/host/bluedroid/bta/av/bta_av_aact.c b/components/bt/host/bluedroid/bta/av/bta_av_aact.c index 748f0669d6..f8595f3110 100644 --- a/components/bt/host/bluedroid/bta/av/bta_av_aact.c +++ b/components/bt/host/bluedroid/bta/av/bta_av_aact.c @@ -733,8 +733,7 @@ static void bta_av_adjust_seps_idx(tBTA_AV_SCB *p_scb, UINT8 avdt_handle) for (xx = 0; xx < BTA_AV_MAX_SEPS; xx++) { APPL_TRACE_DEBUG("av_handle: %d codec_type: %d", p_scb->seps[xx].av_handle, p_scb->seps[xx].codec_type); - if ((p_scb->seps[xx].av_handle && p_scb->codec_type == p_scb->seps[xx].codec_type) - && (p_scb->seps[xx].av_handle == avdt_handle)) { + if ((p_scb->seps[xx].av_handle) && (p_scb->seps[xx].av_handle == avdt_handle)) { p_scb->sep_idx = xx; p_scb->avdt_handle = p_scb->seps[xx].av_handle; break; @@ -1027,6 +1026,7 @@ void bta_av_cleanup(tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data) p_scb->wait = 0; p_scb->num_disc_snks = 0; p_scb->disc_rsn = 0; + p_scb->avdt_handle = 0; bta_sys_stop_timer(&p_scb->timer); if (p_scb->deregistring) { /* remove stream */