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

Commit 15333e4b authored by Myles Watson's avatar Myles Watson
Browse files

resolve merge conflicts of d2f08c15 to rvc-d1-dev-plus-aosp

Bug: 169327567
Change-Id: I7be4a0809d6d655a2892fe66177e902d5ba21815
parents c5f7a8a7 d2f08c15
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -35,9 +35,11 @@
#define APPLY_START_FLAG(handle) (((handle)&0xCFFF) | 0x2000)
#define SUB_EVENT(event) ((event)&MSG_SUB_EVT_MASK)
#define GET_BOUNDARY_FLAG(handle) (((handle) >> 12) & 0x0003)
#define GET_BROADCAST_FLAG(handle) (((handle) >> 14) & 0x0003)

#define HANDLE_MASK 0x0FFF
#define START_PACKET_BOUNDARY 2
#define POINT_TO_POINT 0
#define L2CAP_HEADER_PDU_LEN_SIZE 2
#define L2CAP_HEADER_CID_SIZE 2
#define L2CAP_HEADER_SIZE (L2CAP_HEADER_PDU_LEN_SIZE + L2CAP_HEADER_CID_SIZE)
@@ -354,8 +356,16 @@ static void reassemble_and_dispatch(UNUSED_ATTR BT_HDR* packet) {
    CHECK(acl_length == packet->len - HCI_ACL_PREAMBLE_SIZE);

    uint8_t boundary_flag = GET_BOUNDARY_FLAG(handle);
    uint8_t broadcast_flag = GET_BROADCAST_FLAG(handle);
    handle = handle & HANDLE_MASK;

    if (broadcast_flag != POINT_TO_POINT) {
      LOG_WARN("dropping broadcast packet");
      android_errorWriteLog(0x534e4554, "169327567");
      buffer_allocator->free(packet);
      return;
    }

    if (boundary_flag == START_PACKET_BOUNDARY) {
      if (acl_length < 2) {
        LOG_WARN("%s invalid acl_length %d", __func__, acl_length);