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

Commit cb717b8a authored by Andre Eisenbach's avatar Andre Eisenbach
Browse files

Remove BCM_STR* macros

This also fixes very incosistent null termination and various string
length issues.

Bug: 27069905
Change-Id: I527256d224ac5b18e3943d6038b9c912b247676f
parent 9f74b186
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -131,15 +131,10 @@ void BTA_AgRegister(tBTA_SERVICE_MASK services, tBTA_SEC sec_mask,tBTA_AG_FEAT f
        for (i = 0; i < BTA_AG_NUM_IDX; i++)
        {
            if(p_service_names[i])
            {
                BCM_STRNCPY_S(p_buf->p_name[i], BTA_SERVICE_NAME_LEN+1, p_service_names[i], BTA_SERVICE_NAME_LEN);
                p_buf->p_name[i][BTA_SERVICE_NAME_LEN] = 0;
            }
                strlcpy(p_buf->p_name[i], p_service_names[i], BTA_SERVICE_NAME_LEN);
            else
            {
                p_buf->p_name[i][0] = 0;
        }
        }
        bta_sys_sendmsg(p_buf);
    }
}
+8 −11
Original line number Diff line number Diff line
@@ -347,7 +347,7 @@ static void bta_ag_send_result(tBTA_AG_SCB *p_scb, UINT8 code, char *p_arg,
    *p++ = '\n';

    /* copy result code string */
    BCM_STRCPY_S(p, sizeof(buf), bta_ag_result_tbl[code].p_res);
    strlcpy(p, bta_ag_result_tbl[code].p_res, sizeof(buf) - 2);
#if defined(BTA_HSP_RESULT_REPLACE_COLON) && (BTA_HSP_RESULT_REPLACE_COLON == TRUE)
    if(p_scb->conn_service == BTA_AG_HSP)
    {
@@ -376,7 +376,7 @@ static void bta_ag_send_result(tBTA_AG_SCB *p_scb, UINT8 code, char *p_arg,
    }
    else if (bta_ag_result_tbl[code].fmt == BTA_AG_RES_FMT_STR)
    {
        BCM_STRCPY_S(p, sizeof(buf), p_arg);
        strcpy(p, p_arg);
        p += strlen(p_arg);
    }

@@ -427,7 +427,7 @@ static void bta_ag_send_multi_result(tBTA_AG_SCB *p_scb, tBTA_AG_MULTI_RESULT_CB
        *p++ = '\n';

        /* copy result code string */
        BCM_STRCPY_S(p, sizeof(buf), bta_ag_result_tbl[m_res_cb->res_cb[res_idx].code].p_res);
        strcpy(p, bta_ag_result_tbl[m_res_cb->res_cb[res_idx].code].p_res);
        p += strlen(bta_ag_result_tbl[m_res_cb->res_cb[res_idx].code].p_res);

        /* copy argument if any */
@@ -437,7 +437,7 @@ static void bta_ag_send_multi_result(tBTA_AG_SCB *p_scb, tBTA_AG_MULTI_RESULT_CB
        }
        else if (bta_ag_result_tbl[m_res_cb->res_cb[res_idx].code].fmt == BTA_AG_RES_FMT_STR)
        {
            BCM_STRCPY_S(p, sizeof(buf), m_res_cb->res_cb[res_idx].p_arg);
            strcpy(p, m_res_cb->res_cb[res_idx].p_arg);
            p += strlen(m_res_cb->res_cb[res_idx].p_arg);
        }

@@ -753,7 +753,7 @@ static void bta_ag_process_unat_res(char *unat_result)
        /* Add EOF */
        trim_data[j] = '\0';
        str_leng = str_leng - 4;
        BCM_STRNCPY_S(unat_result, BTA_AG_AT_MAX_LEN+1, trim_data,str_leng+1);
        strlcpy(unat_result, trim_data, str_leng+1);
        i=0;
        j=0;

@@ -850,8 +850,7 @@ void bta_ag_at_hsp_cback(tBTA_AG_SCB *p_scb, UINT16 cmd, UINT8 arg_type,
    val.hdr.handle = bta_ag_scb_to_idx(p_scb);
    val.hdr.app_id = p_scb->app_id;
    val.num = (UINT16) int_arg;
    BCM_STRNCPY_S(val.str, sizeof(val.str), p_arg, BTA_AG_AT_MAX_LEN);
    val.str[BTA_AG_AT_MAX_LEN] = 0;
    strlcpy(val.str, p_arg, BTA_AG_AT_MAX_LEN);

    /* call callback with event */
    (*bta_ag_cb.p_cback)(bta_ag_hsp_cb_evt[cmd], (tBTA_AG *) &val);
@@ -892,8 +891,7 @@ void bta_ag_at_hfp_cback(tBTA_AG_SCB *p_scb, UINT16 cmd, UINT8 arg_type,
    val.hdr.app_id = p_scb->app_id;
    val.num = int_arg;
    bdcpy(val.bd_addr, p_scb->peer_addr);
    BCM_STRNCPY_S(val.str, sizeof(val.str), p_arg, BTA_AG_AT_MAX_LEN);
    val.str[BTA_AG_AT_MAX_LEN] = 0;
    strlcpy(val.str, p_arg, BTA_AG_AT_MAX_LEN);

    event = bta_ag_hfp_cb_evt[cmd];

@@ -1320,8 +1318,7 @@ void bta_ag_at_err_cback(tBTA_AG_SCB *p_scb, BOOLEAN unknown, char *p_arg)
        val.hdr.handle = bta_ag_scb_to_idx(p_scb);
        val.hdr.app_id = p_scb->app_id;
        val.num = 0;
        BCM_STRNCPY_S(val.str, sizeof(val.str), p_arg, BTA_AG_AT_MAX_LEN);
        val.str[BTA_AG_AT_MAX_LEN] = 0;
        strlcpy(val.str, p_arg, BTA_AG_AT_MAX_LEN);
        (*bta_ag_cb.p_cback)(BTA_AG_AT_UNAT_EVT, (tBTA_AG *) &val);
    }
    else
+1 −8
Original line number Diff line number Diff line
@@ -123,16 +123,9 @@ void BTA_AvRegister(tBTA_AV_CHNL chnl, const char *p_service_name, UINT8 app_id,
        p_buf->hdr.layer_specific   = chnl;
        p_buf->hdr.event = BTA_AV_API_REGISTER_EVT;
        if(p_service_name)
        {
            BCM_STRNCPY_S(
                p_buf->p_service_name, sizeof(p_buf->p_service_name), p_service_name,
                BTA_SERVICE_NAME_LEN);
            p_buf->p_service_name[BTA_SERVICE_NAME_LEN-1] = 0;
        }
            strlcpy(p_buf->p_service_name, p_service_name, BTA_SERVICE_NAME_LEN);
        else
        {
            p_buf->p_service_name[0] = 0;
        }
        p_buf->app_id = app_id;
        p_buf->p_app_data_cback = p_data_cback;
        p_buf->service_uuid = service_uuid;
+2 −3
Original line number Diff line number Diff line
@@ -465,8 +465,7 @@ static void bta_av_api_sink_enable(tBTA_AV_DATA *p_data)
    activate_sink = p_data->hdr.layer_specific;
    APPL_TRACE_DEBUG("bta_av_api_sink_enable %d ", activate_sink)
    char p_service_name[BTA_SERVICE_NAME_LEN+1];
    BCM_STRNCPY_S(p_service_name, sizeof(p_service_name),
            BTIF_AVK_SERVICE_NAME, BTA_SERVICE_NAME_LEN);
    strlcpy(p_service_name, BTIF_AVK_SERVICE_NAME, BTA_SERVICE_NAME_LEN);

    if (activate_sink)
    {
+32 −78
Original line number Diff line number Diff line
@@ -1700,8 +1700,7 @@ void bta_dm_sdp_result (tBTA_DM_MSG *p_data)
                        {
                            /* send result back to app now, one by one */
                            bdcpy (result.disc_ble_res.bd_addr, bta_dm_search_cb.peer_bdaddr);
                            BCM_STRNCPY_S((char*)result.disc_ble_res.bd_name, sizeof(BD_NAME), bta_dm_get_remname(), (BD_NAME_LEN));
                            result.disc_ble_res.bd_name[BD_NAME_LEN] = 0;
                            strlcpy((char*)result.disc_ble_res.bd_name, bta_dm_get_remname(), BD_NAME_LEN);
                            result.disc_ble_res.service.len = service_uuid.len;
                            result.disc_ble_res.service.uu.uuid16 = service_uuid.uu.uuid16;

@@ -1854,11 +1853,8 @@ void bta_dm_sdp_result (tBTA_DM_MSG *p_data)

                }
                bdcpy (p_msg->disc_result.result.disc_res.bd_addr, bta_dm_search_cb.peer_bdaddr);
                BCM_STRNCPY_S((char*)p_msg->disc_result.result.disc_res.bd_name, sizeof(BD_NAME),
                        bta_dm_get_remname(), (BD_NAME_LEN-1));

                /* make sure the string is null terminated */
                p_msg->disc_result.result.disc_res.bd_name[BD_NAME_LEN-1] = 0;
                strlcpy((char*)p_msg->disc_result.result.disc_res.bd_name,
                        bta_dm_get_remname(), BD_NAME_LEN);

                bta_sys_sendmsg(p_msg);
            }
@@ -1880,11 +1876,8 @@ void bta_dm_sdp_result (tBTA_DM_MSG *p_data)
            p_msg->disc_result.result.disc_res.result = BTA_FAILURE;
            p_msg->disc_result.result.disc_res.services = bta_dm_search_cb.services_found;
            bdcpy (p_msg->disc_result.result.disc_res.bd_addr, bta_dm_search_cb.peer_bdaddr);
            BCM_STRNCPY_S((char*)p_msg->disc_result.result.disc_res.bd_name, sizeof(BD_NAME),
                    bta_dm_get_remname(), (BD_NAME_LEN-1));

            /* make sure the string is null terminated */
            p_msg->disc_result.result.disc_res.bd_name[BD_NAME_LEN-1] = 0;
            strlcpy((char*)p_msg->disc_result.result.disc_res.bd_name,
                    bta_dm_get_remname(), BD_NAME_LEN);

            bta_sys_sendmsg(p_msg);
        }
@@ -2267,11 +2260,8 @@ static void bta_dm_find_services ( BD_ADDR bd_addr)
            p_msg->hdr.event = BTA_DM_DISCOVERY_RESULT_EVT;
            p_msg->disc_result.result.disc_res.services = bta_dm_search_cb.services_found;
            bdcpy (p_msg->disc_result.result.disc_res.bd_addr, bta_dm_search_cb.peer_bdaddr);
            BCM_STRNCPY_S((char*)p_msg->disc_result.result.disc_res.bd_name, sizeof(BD_NAME),
                    bta_dm_get_remname(), (BD_NAME_LEN-1));

            /* make sure the string is terminated */
            p_msg->disc_result.result.disc_res.bd_name[BD_NAME_LEN-1] = 0;
            strlcpy((char*)p_msg->disc_result.result.disc_res.bd_name,
                    bta_dm_get_remname(), BD_NAME_LEN);

            bta_sys_sendmsg(p_msg);
        }
@@ -2462,11 +2452,8 @@ static void bta_dm_discover_device(BD_ADDR remote_bd_addr)
        p_msg->disc_result.result.disc_res.result = BTA_SUCCESS;
        p_msg->disc_result.result.disc_res.services = bta_dm_search_cb.services_found;
        bdcpy (p_msg->disc_result.result.disc_res.bd_addr, bta_dm_search_cb.peer_bdaddr);
        BCM_STRNCPY_S((char*)p_msg->disc_result.result.disc_res.bd_name,  sizeof(BD_NAME),
                      (char*)bta_dm_search_cb.peer_name, (BD_NAME_LEN-1));

        /* make sure the string is terminated */
        p_msg->disc_result.result.disc_res.bd_name[BD_NAME_LEN-1] = 0;
        strlcpy((char*)p_msg->disc_result.result.disc_res.bd_name,
                      (char*)bta_dm_search_cb.peer_name, BD_NAME_LEN);

        bta_sys_sendmsg(p_msg);
    }
@@ -2613,7 +2600,7 @@ static void bta_dm_service_search_remname_cback (BD_ADDR bd_addr, DEV_CLASS dc,
            rem_name.length = (BD_NAME_LEN-1);
            rem_name.remote_bd_name[(BD_NAME_LEN-1)] = 0;
        }
        BCM_STRNCPY_S((char*)rem_name.remote_bd_name,  sizeof(BD_NAME), (char*)bd_name, (BD_NAME_LEN-1));
        strlcpy((char*)rem_name.remote_bd_name, (char*)bd_name, BD_NAME_LEN);
        rem_name.status = BTM_SUCCESS;

        bta_dm_remname_cback(&rem_name);
@@ -2661,8 +2648,8 @@ static void bta_dm_remname_cback (tBTM_REMOTE_DEV_NAME *p_remote_name)

    /* remote name discovery is done but it could be failed */
    bta_dm_search_cb.name_discover_done = TRUE;
    BCM_STRNCPY_S((char*)bta_dm_search_cb.peer_name, sizeof(BD_NAME), (char*)p_remote_name->remote_bd_name, (BD_NAME_LEN));
    bta_dm_search_cb.peer_name[BD_NAME_LEN]=0;
    strlcpy((char*)bta_dm_search_cb.peer_name,
            (char*)p_remote_name->remote_bd_name, BD_NAME_LEN);

    BTM_SecDeleteRmtNameNotifyCallback(&bta_dm_service_search_remname_cback);

@@ -2676,14 +2663,11 @@ static void bta_dm_remname_cback (tBTM_REMOTE_DEV_NAME *p_remote_name)
    if ((p_msg = (tBTA_DM_REM_NAME *) osi_getbuf(sizeof(tBTA_DM_REM_NAME))) != NULL)
    {
        bdcpy (p_msg->result.disc_res.bd_addr, bta_dm_search_cb.peer_bdaddr);
        BCM_STRNCPY_S((char*)p_msg->result.disc_res.bd_name, sizeof(BD_NAME), (char*)p_remote_name->remote_bd_name, (BD_NAME_LEN));

        /* make sure the string is null terminated */
        p_msg->result.disc_res.bd_name[BD_NAME_LEN] = 0;

        strlcpy((char*)p_msg->result.disc_res.bd_name,
                (char*)p_remote_name->remote_bd_name, BD_NAME_LEN);
        p_msg->hdr.event = BTA_DM_REMT_NAME_EVT;
        bta_sys_sendmsg(p_msg);

        bta_sys_sendmsg(p_msg);
    }
}

@@ -2706,11 +2690,7 @@ static UINT8 bta_dm_authorize_cback (BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NA

    bdcpy(sec_event.authorize.bd_addr, bd_addr);
    memcpy(sec_event.authorize.dev_class, dev_class, DEV_CLASS_LEN);

    BCM_STRNCPY_S((char*)sec_event.authorize.bd_name, sizeof(BD_NAME), (char*)bd_name, (BD_NAME_LEN-1));

    /* make sure the string is null terminated */
    sec_event.authorize.bd_name[BD_NAME_LEN-1] = 0;
    strlcpy((char*)sec_event.authorize.bd_name, (char*)bd_name, BD_NAME_LEN);

#if ( defined(BTA_JV_INCLUDED) && BTA_JV_INCLUDED == TRUE )
    sec_event.authorize.service = service_id;
@@ -2841,8 +2821,7 @@ static UINT8 bta_dm_pin_cback (BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NAME bd_

    bdcpy(sec_event.pin_req.bd_addr, bd_addr);
    BTA_COPY_DEVICE_CLASS(sec_event.pin_req.dev_class, dev_class);
    BCM_STRNCPY_S((char*)sec_event.pin_req.bd_name, sizeof(BD_NAME), (char*)bd_name, (BD_NAME_LEN-1));
    sec_event.pin_req.bd_name[BD_NAME_LEN-1] = 0;
    strlcpy((char*)sec_event.pin_req.bd_name, (char*)bd_name, BD_NAME_LEN);
    sec_event.pin_req.min_16_digit = min_16_digit;

    bta_dm_cb.p_sec_cback(BTA_DM_PIN_REQ_EVT, &sec_event);
@@ -3011,9 +2990,8 @@ static UINT8 bta_dm_sp_cback (tBTM_SP_EVT event, tBTM_SP_EVT_DATA *p_data)
                 copy these values into key_notif from cfm_req */
              bdcpy(sec_event.key_notif.bd_addr, p_data->cfm_req.bd_addr);
              BTA_COPY_DEVICE_CLASS(sec_event.key_notif.dev_class, p_data->cfm_req.dev_class);
              BCM_STRNCPY_S((char*)sec_event.key_notif.bd_name, sizeof(BD_NAME),
                   (char*)p_data->cfm_req.bd_name, (BD_NAME_LEN-1));
              sec_event.key_notif.bd_name[BD_NAME_LEN-1] = 0;
              strlcpy((char*)sec_event.key_notif.bd_name,
                      (char*)p_data->cfm_req.bd_name, BD_NAME_LEN);
           }
        }

@@ -3036,8 +3014,8 @@ static UINT8 bta_dm_sp_cback (tBTM_SP_EVT event, tBTM_SP_EVT_DATA *p_data)
            {
                bdcpy(sec_event.key_notif.bd_addr, p_data->key_notif.bd_addr);
                BTA_COPY_DEVICE_CLASS(sec_event.key_notif.dev_class, p_data->key_notif.dev_class);
                BCM_STRNCPY_S((char*)sec_event.key_notif.bd_name, sizeof(BD_NAME),
                    (char*)p_data->key_notif.bd_name, (BD_NAME_LEN-1));
                strlcpy((char*)sec_event.key_notif.bd_name,
                        (char*)p_data->key_notif.bd_name, BD_NAME_LEN);
                sec_event.key_notif.bd_name[BD_NAME_LEN-1] = 0;
            }
        }
@@ -3066,8 +3044,7 @@ static UINT8 bta_dm_sp_cback (tBTM_SP_EVT event, tBTM_SP_EVT_DATA *p_data)

        bdcpy(sec_event.rmt_oob.bd_addr, p_data->rmt_oob.bd_addr);
        BTA_COPY_DEVICE_CLASS(sec_event.rmt_oob.dev_class, p_data->rmt_oob.dev_class);
         BCM_STRNCPY_S((char*)sec_event.rmt_oob.bd_name, sizeof(BD_NAME), (char*)p_data->rmt_oob.bd_name, (BD_NAME_LEN-1));
            sec_event.rmt_oob.bd_name[BD_NAME_LEN-1] = 0;
        strlcpy((char*)sec_event.rmt_oob.bd_name, (char*)p_data->rmt_oob.bd_name, BD_NAME_LEN);

        bta_dm_cb.p_sec_cback(BTA_DM_SP_RMT_OOB_EVT, &sec_event);

@@ -4480,15 +4457,9 @@ static UINT8 bta_dm_ble_smp_cback (tBTM_LE_EVT event, BD_ADDR bda, tBTM_LE_EVT_D
            bdcpy(sec_event.ble_req.bd_addr, bda);
            p_name = BTM_SecReadDevName(bda);
            if (p_name != NULL)
            {
                BCM_STRNCPY_S((char*)sec_event.ble_req.bd_name,
                               sizeof(BD_NAME), p_name, (BD_NAME_LEN));
            }
                strlcpy((char*)sec_event.ble_req.bd_name, p_name, BD_NAME_LEN);
            else
            {
                sec_event.ble_req.bd_name[0] = 0;
            }
            sec_event.ble_req.bd_name[BD_NAME_LEN] = 0;
            bta_dm_cb.p_sec_cback(BTA_DM_BLE_SEC_REQ_EVT, &sec_event);
            break;

@@ -4496,15 +4467,9 @@ static UINT8 bta_dm_ble_smp_cback (tBTM_LE_EVT event, BD_ADDR bda, tBTM_LE_EVT_D
            bdcpy(sec_event.key_notif.bd_addr, bda);
            p_name = BTM_SecReadDevName(bda);
            if (p_name != NULL)
            {
                BCM_STRNCPY_S((char*)sec_event.key_notif.bd_name,
                               sizeof(BD_NAME), p_name, (BD_NAME_LEN));
            }
                strlcpy((char*)sec_event.key_notif.bd_name, p_name, BD_NAME_LEN);
            else
            {
                sec_event.key_notif.bd_name[0] = 0;
            }
            sec_event.ble_req.bd_name[BD_NAME_LEN] = 0;
            sec_event.key_notif.passkey = p_data->key_notif;
            bta_dm_cb.p_sec_cback(BTA_DM_BLE_PASSKEY_NOTIF_EVT, &sec_event);
            break;
@@ -4521,8 +4486,7 @@ static UINT8 bta_dm_ble_smp_cback (tBTM_LE_EVT event, BD_ADDR bda, tBTM_LE_EVT_D

        case BTM_LE_NC_REQ_EVT:
            bdcpy(sec_event.key_notif.bd_addr, bda);
            BCM_STRNCPY_S((char*)sec_event.key_notif.bd_name, sizeof(BD_NAME), bta_dm_get_remname(), (BD_NAME_LEN));
            sec_event.ble_req.bd_name[BD_NAME_LEN] = 0;
            strlcpy((char*)sec_event.key_notif.bd_name, bta_dm_get_remname(), (BD_NAME_LEN));
            sec_event.key_notif.passkey = p_data->key_notif;
            bta_dm_cb.p_sec_cback(BTA_DM_BLE_NC_REQ_EVT, &sec_event);
            break;
@@ -4541,14 +4505,10 @@ static UINT8 bta_dm_ble_smp_cback (tBTM_LE_EVT event, BD_ADDR bda, tBTM_LE_EVT_D
#endif
            p_name = BTM_SecReadDevName(bda);
            if (p_name != NULL)
            {
                BCM_STRNCPY_S((char*)sec_event.auth_cmpl.bd_name,
                               sizeof(BD_NAME), p_name, (BD_NAME_LEN));
            }
                strlcpy((char*)sec_event.auth_cmpl.bd_name, p_name, (BD_NAME_LEN));
            else
            {
                sec_event.auth_cmpl.bd_name[0] = 0;
            }

            if (p_data->complt.reason != 0)
            {
                sec_event.auth_cmpl.fail_reason = BTA_DM_AUTH_CONVERT_SMP_CODE(((UINT8)p_data->complt.reason));
@@ -4568,7 +4528,6 @@ static UINT8 bta_dm_ble_smp_cback (tBTM_LE_EVT event, BD_ADDR bda, tBTM_LE_EVT_D
                //bta_dm_cb.p_sec_cback(BTA_DM_AUTH_CMPL_EVT, &sec_event);
                bta_dm_cb.p_sec_cback(BTA_DM_BLE_AUTH_CMPL_EVT, &sec_event);
            }

            break;

        default:
@@ -5539,8 +5498,7 @@ static void bta_dm_gatt_disc_result(tBTA_GATT_ID service_id)

        /* send result back to app now, one by one */
        bdcpy (result.disc_ble_res.bd_addr, bta_dm_search_cb.peer_bdaddr);
        BCM_STRNCPY_S((char*)result.disc_ble_res.bd_name, sizeof(BD_NAME), bta_dm_get_remname(), (BD_NAME_LEN-1));
        result.disc_ble_res.bd_name[BD_NAME_LEN] = 0;
        strlcpy((char*)result.disc_ble_res.bd_name, bta_dm_get_remname(), BD_NAME_LEN);
        memcpy(&result.disc_ble_res.service, &service_id.uuid, sizeof(tBT_UUID));

        bta_dm_search_cb.p_search_cback(BTA_DM_DISC_BLE_RES_EVT, &result);
@@ -5583,11 +5541,7 @@ static void bta_dm_gatt_disc_complete(UINT16 conn_id, tBTA_GATT_STATUS status)
            p_msg->disc_result.result.disc_res.num_uuids = 0;
            p_msg->disc_result.result.disc_res.p_uuid_list = NULL;
            bdcpy (p_msg->disc_result.result.disc_res.bd_addr, bta_dm_search_cb.peer_bdaddr);
            BCM_STRNCPY_S((char*)p_msg->disc_result.result.disc_res.bd_name, sizeof(BD_NAME),
                    bta_dm_get_remname(), (BD_NAME_LEN-1));

            /* make sure the string is terminated */
            p_msg->disc_result.result.disc_res.bd_name[BD_NAME_LEN-1] = 0;
            strlcpy((char*)p_msg->disc_result.result.disc_res.bd_name, bta_dm_get_remname(), BD_NAME_LEN);

            p_msg->disc_result.result.disc_res.device_type |= BT_DEVICE_TYPE_BLE;
            if ( bta_dm_search_cb.ble_raw_used > 0 )
Loading