Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7d98f498 authored by Jakub Pawlowski's avatar Jakub Pawlowski
Browse files

LE Create Connection Complete - crash on Command Disallowed

When LE Create Connection Complete is received with status "Command
Disallowed", we can't tell which state we should transition to. This
can be triggered only in case of rare race condition. Crash to recover.

This was introduced in 3c7bb20d, when
generic handling of all errors to this event was added.

Bug: 77429706
Test: sl4a GattConnectTest
Change-Id: I888861461da296876d97e8784a3dc7c53130fb51
(cherry picked from commit 60a7c428a2533349f39bca50289046e7846c15a5)
parent fea053dd
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -2016,9 +2016,20 @@ void btm_ble_conn_complete(uint8_t* p, UNUSED_ATTR uint16_t evt_len,
 *
 *****************************************************************************/
void btm_ble_create_ll_conn_complete(uint8_t status) {
  if (status != HCI_SUCCESS) {
  if (status == HCI_SUCCESS) return;

  btm_ble_set_conn_st(BLE_CONN_IDLE);
  btm_ble_update_mode_operation(HCI_ROLE_UNKNOWN, NULL, status);

  LOG(WARNING) << "LE Create Connection attempt failed, status="
               << loghex(status);

  if (status == HCI_ERR_COMMAND_DISALLOWED) {
    /* There is already either direct connect, or whitelist connection
     * pending, but we don't know which one, or to which state should we
     * transition now. This can be triggered only in case of rare race
     * condition. Crash to recover. */
    LOG(FATAL) << "LE Create Connection - command disallowed";
  }
}
/*****************************************************************************