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

Commit 23790f91 authored by Jack He's avatar Jack He Committed by Andre Eisenbach
Browse files

Assign pairing code to bta_dm_cb before device name resolution

Device name resolution, BTM_ReadRemoteDeviceName(), will cause
bta_dm_sp_cback() to exit early and bta_dm_pinname_cback() callback
will be invoked after the resolution, which continues the pairing
with pairing code from bta_dm_cb.num_val. Hence, bta_dm_cb.num_val
needs to be assigned before BTM_ReadRemoteDeviceName() is called.

Test: manual
Bug: 31381715
Change-Id: I61f06a9d878dd72154d6621eb094dcea5f701cbc
parent 8adf9308
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -2882,6 +2882,8 @@ static uint8_t bta_dm_sp_cback (tBTM_SP_EVT event, tBTM_SP_EVT_DATA *p_data)
    /*case BTM_SP_KEY_REQ_EVT: */
    case BTM_SP_KEY_NOTIF_EVT:
#endif
        bta_dm_cb.num_val = sec_event.key_notif.passkey = p_data->key_notif.passkey;

        if(BTM_SP_CFM_REQ_EVT == event)
        {
          /* Due to the switch case falling through below to BTM_SP_KEY_NOTIF_EVT,
@@ -2907,7 +2909,6 @@ static uint8_t bta_dm_sp_cback (tBTM_SP_EVT event, tBTM_SP_EVT_DATA *p_data)
           }
        }

        bta_dm_cb.num_val = sec_event.key_notif.passkey = p_data->key_notif.passkey;
        if (BTM_SP_KEY_NOTIF_EVT == event)
        {
            /* If the device name is not known, save bdaddr and devclass