bt_pbap_vcard_list_t *vc_list = (bt_pbap_vcard_list_t *)(param->param_data);
bt_pbap_vcard_info_s *vcard_info = NULL;
- if (vc_list->length > 0)
- vcard_info = g_malloc0(vc_list->length * sizeof(bt_pbap_vcard_info_s));
-
BT_INFO("BLUETOOTH_PBAP_VCARD_LIST");
- for (i = 0; i < vc_list->length; i++)
- vcard_info[i].contact_name = g_strdup(vc_list->vcards[i]);
+ if (vc_list->length > 0) {
+ vcard_info = g_malloc0(vc_list->length * sizeof(bt_pbap_vcard_info_s));
+ for (i = 0; i < vc_list->length; i++) {
+ vcard_info[i].contact_name = g_strdup(vc_list->vcards[i]);
+ }
+ }
_bt_unset_cb(BT_EVENT_PBAP_VCARD_LIST);
_bt_convert_address_to_string(&device_addr, &vc_list->btaddr);
if (vcard_info != NULL) {
for (i = 0; i < vc_list->length; i++)
g_free((char *)vcard_info[i].contact_name);
- free(vcard_info);
+ g_free(vcard_info);
}
break;
}
break;
}
case BLUETOOTH_PBAP_PHONEBOOK_SEARCH: {
+ int i;
bt_pbap_list_vcards_cb cb = bt_event_slot_container[event_index].callback;
void *local_user_data = bt_event_slot_container[event_index].user_data;
bt_pbap_phonebook_search_list_t *vc_list = (bt_pbap_phonebook_search_list_t *)(param->param_data);
bt_pbap_vcard_info_s *vcard_info = NULL;
- if (vc_list->length > 0)
+ if (vc_list->length > 0) {
vcard_info = g_malloc0(vc_list->length * sizeof(bt_pbap_vcard_info_s));
+ for (i = 0; i < vc_list->length; i++) {
+ vcard_info[i].contact_name = g_strdup(vc_list->vcards[i]);
+ }
+ }
BT_INFO("BLUETOOTH_PBAP_PHONEBOOK_SEARCH");
if (device_addr != NULL)
free(device_addr);
- g_free(vcard_info);
-
+ if (vcard_info != NULL) {
+ for (i = 0; i < vc_list->length; i++)
+ g_free((char *)vcard_info[i].contact_name);
+ g_free(vcard_info);
+ }
break;
}
case BLUETOOTH_EVENT_HF_CONNECTED: