mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
fix crash caused by spp pairing cancel
This commit is contained in:
parent
a845b1bb51
commit
f344a65af5
@ -4589,26 +4589,6 @@ void btm_sec_disconnected (UINT16 handle, UINT8 reason)
|
||||
#endif ///BT_USE_TRACES == TRUE && SMP_INCLUDED == TRUE
|
||||
BTM_TRACE_EVENT("%s before update sec_flags=0x%x\n", __func__, p_dev_rec->sec_flags);
|
||||
|
||||
/* If we are in the process of bonding we need to tell client that auth failed */
|
||||
if ( (btm_cb.pairing_state != BTM_PAIR_STATE_IDLE)
|
||||
&& (memcmp (btm_cb.pairing_bda, p_dev_rec->bd_addr, BD_ADDR_LEN) == 0)) {
|
||||
btm_sec_change_pairing_state (BTM_PAIR_STATE_IDLE);
|
||||
p_dev_rec->sec_flags &= ~BTM_SEC_LINK_KEY_KNOWN;
|
||||
if (btm_cb.api.p_auth_complete_callback) {
|
||||
/* If the disconnection reason is REPEATED_ATTEMPTS,
|
||||
send this error message to complete callback function
|
||||
to display the error message of Repeated attempts.
|
||||
All others, send HCI_ERR_AUTH_FAILURE. */
|
||||
if (reason == HCI_ERR_REPEATED_ATTEMPTS) {
|
||||
result = HCI_ERR_REPEATED_ATTEMPTS;
|
||||
} else if (old_pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD) {
|
||||
result = HCI_ERR_HOST_REJECT_SECURITY;
|
||||
}
|
||||
(*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr, p_dev_rec->dev_class,
|
||||
p_dev_rec->sec_bd_name, result);
|
||||
}
|
||||
}
|
||||
|
||||
#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE
|
||||
btm_ble_update_mode_operation(HCI_ROLE_UNKNOWN, p_dev_rec->bd_addr, HCI_SUCCESS);
|
||||
/* see sec_flags processing in btm_acl_removed */
|
||||
@ -4645,6 +4625,26 @@ void btm_sec_disconnected (UINT16 handle, UINT8 reason)
|
||||
}
|
||||
|
||||
BTM_TRACE_EVENT("%s after update sec_flags=0x%x\n", __func__, p_dev_rec->sec_flags);
|
||||
|
||||
/* If we are in the process of bonding we need to tell client that auth failed */
|
||||
if ( (btm_cb.pairing_state != BTM_PAIR_STATE_IDLE)
|
||||
&& (memcmp (btm_cb.pairing_bda, p_dev_rec->bd_addr, BD_ADDR_LEN) == 0)) {
|
||||
btm_sec_change_pairing_state (BTM_PAIR_STATE_IDLE);
|
||||
p_dev_rec->sec_flags &= ~BTM_SEC_LINK_KEY_KNOWN;
|
||||
if (btm_cb.api.p_auth_complete_callback) {
|
||||
/* If the disconnection reason is REPEATED_ATTEMPTS,
|
||||
send this error message to complete callback function
|
||||
to display the error message of Repeated attempts.
|
||||
All others, send HCI_ERR_AUTH_FAILURE. */
|
||||
if (reason == HCI_ERR_REPEATED_ATTEMPTS) {
|
||||
result = HCI_ERR_REPEATED_ATTEMPTS;
|
||||
} else if (old_pairing_flags & BTM_PAIR_FLAGS_WE_STARTED_DD) {
|
||||
result = HCI_ERR_HOST_REJECT_SECURITY;
|
||||
}
|
||||
(*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr, p_dev_rec->dev_class,
|
||||
p_dev_rec->sec_bd_name, result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
|
Loading…
Reference in New Issue
Block a user