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

Commit c903ad8f authored by Joseph Pirozzo's avatar Joseph Pirozzo
Browse files

Handling of incoming AVRCP Controller connections

Resolve edge cases on incoming AVRCP Controllers Remote Controller
cases, both caused the remote control component to either generate an
out of bounds error or fail to update peer features.

Test: receive incoming AVRCP connection
Bug: 130750865
Change-Id: I15abd2fd4bc963889d6cdfe9364a651e2b4c3c10
parent c8032598
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1873,9 +1873,9 @@ void bta_av_rc_disc_done(UNUSED_ATTR tBTA_AV_DATA* p_data) {
      /*
       * In case scb is not created by the time we are done with SDP
       * we still need to send RC feature event. So we need to get BD
       * from Message
       * from Message.  Note that lidx is 1 based not 0 based
       */
      rc_feat.peer_addr = p_cb->lcb[p_cb->rcb[rc_handle].lidx].addr;
      rc_feat.peer_addr = p_cb->lcb[p_cb->rcb[rc_handle].lidx - 1].addr;
    } else {
      rc_feat.peer_addr = p_scb->PeerAddress();
    }
+3 −0
Original line number Diff line number Diff line
@@ -1244,6 +1244,9 @@ BtifAvPeer* BtifAvSink::FindOrCreatePeer(const RawAddress& peer_address,
  peer = new BtifAvPeer(peer_address, AVDT_TSEP_SRC, bta_handle, peer_id);
  peers_.insert(std::make_pair(peer_address, peer));
  peer->Init();
  if (active_peer_.IsEmpty()) {
    active_peer_ = peer_address;
  }
  return peer;
}