Merge branch 'bugfix/delete_node_during_list_traverse' into 'master'

bugfix/fixed the crash of LoadProhibited caused by taht the nodes are deleted during the traversal of the linked list

Closes IDFGH-3256

See merge request espressif/esp-idf!23090
This commit is contained in:
Jiang Jiang Jian 2023-04-07 13:52:53 +08:00
commit a15c36f987

View File

@ -509,12 +509,14 @@ void btm_acl_device_down (void)
{
tACL_CONN *p = NULL;
BTM_TRACE_DEBUG ("btm_acl_device_down\n");
for (list_node_t *p_node = list_begin(btm_cb.p_acl_db_list); p_node; p_node = list_next(p_node)) {
p = list_node(p_node);
if (p && p->in_use) {
BTM_TRACE_DEBUG ("hci_handle=%d HCI_ERR_HW_FAILURE \n", p->hci_handle );
l2c_link_hci_disc_comp (p->hci_handle, HCI_ERR_HW_FAILURE);
}
for (list_node_t *p_node = list_begin(btm_cb.p_acl_db_list); p_node;) {
list_node_t *p_next = list_next(p_node);
p = list_node(p_node);
if (p && p->in_use) {
BTM_TRACE_DEBUG ("hci_handle=%d HCI_ERR_HW_FAILURE \n", p->hci_handle );
l2c_link_hci_disc_comp (p->hci_handle, HCI_ERR_HW_FAILURE);
}
p_node = p_next;
}
}
/*******************************************************************************