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

Commit 26e298cd authored by Hui Peng's avatar Hui Peng
Browse files

Fix an OOB bug in bnepu_process_peer_multicast_filter_set

Bug: 278776319
Test: m com.android.btservices

Change-Id: Id0347dded5c785939ae0b4998d47de3ebe7804bd
parent b914dd51
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1076,11 +1076,12 @@ void bnepu_process_peer_multicast_filter_set(tBNEP_CONN* p_bcb,
  }

  p_bcb->rcvd_mcast_filters = num_filters;
  p_temp_filters = p_filters;
  for (xx = 0; xx < num_filters; xx++) {
    memcpy(p_bcb->rcvd_mcast_filter_start[xx].address, p_filters, BD_ADDR_LEN);
    memcpy(p_bcb->rcvd_mcast_filter_end[xx].address, p_filters + BD_ADDR_LEN,
    memcpy(p_bcb->rcvd_mcast_filter_start[xx].address, p_temp_filters, BD_ADDR_LEN);
    memcpy(p_bcb->rcvd_mcast_filter_end[xx].address, p_temp_filters + BD_ADDR_LEN,
           BD_ADDR_LEN);
    p_filters += (BD_ADDR_LEN * 2);
    p_temp_filters += (BD_ADDR_LEN * 2);

    /* Check if any of the ranges have all zeros as both starting and ending
     * addresses */