Fix the issue that can not send device event
[platform/core/connectivity/bluetooth-frwk.git] / bt-oal / oal-hf-client.c
index 46f3faf..4dcbe31 100644 (file)
@@ -135,7 +135,7 @@ oal_status_t hf_client_connect(bt_address_t *device_address)
        CHECK_OAL_HFP_CLIENT_ENABLED();
        OAL_CHECK_PARAMETER(device_address, return);
 
-       BT_INFO("BT remote AG Device Address: %s", bdt_bd2str(device_address, &bdstr));
+       BT_INFO("BT remote AG Device Address: %s", bdt_bd2str(device_address, &bdstr) + 12);
        /* Call connect function of Bluedroid*/
        status = blued_hf_client_interface->connect((bt_bdaddr_t *)device_address);
        if ((status != BT_STATUS_SUCCESS) && (status != BT_STATUS_DONE)) {
@@ -156,7 +156,7 @@ oal_status_t hf_client_disconnect(bt_address_t *device_address)
        CHECK_OAL_HFP_CLIENT_ENABLED();
        OAL_CHECK_PARAMETER(device_address, return);
 
-       BT_INFO("BT remote AG Address: %s", bdt_bd2str(device_address, &bdstr));
+       BT_INFO("BT remote AG Address: %s", bdt_bd2str(device_address, &bdstr) + 12);
        /* call Disconnect function of Bluedroid */
        status = blued_hf_client_interface->disconnect((bt_bdaddr_t *)device_address);
        if ((status != BT_STATUS_SUCCESS) && (status != BT_STATUS_DONE)) {
@@ -172,17 +172,20 @@ void cb_hf_client_connection_state(bthf_client_connection_state_t state, unsigne
        int event_type;
        bdstr_t bdstr;
        bt_address_t * event_data = NULL;
-       event_data = g_new0(bt_address_t, 1);
-       memcpy(event_data->addr, bd_addr->address, BT_ADDRESS_BYTES_NUM);
 
        if (bd_addr == NULL) {
                BT_ERR("Address is NULL");
-               if (event_data)
-                       g_free(event_data);
                return;
        }
 
-       BT_INFO("HFP Client Profile state = [%d],  BT Address = [%s]", state, bdt_bd2str((bt_address_t*)bd_addr, &bdstr));
+       event_data = g_new0(bt_address_t, 1);
+       if (event_data == NULL) {
+               BT_ERR("failed to allocate event_data");
+               return;
+       }
+       memcpy(event_data->addr, bd_addr->address, BT_ADDRESS_BYTES_NUM);
+
+       BT_INFO("HFP Client Profile state = [%d],  BT Address = [%s]", state, bdt_bd2str((bt_address_t*)bd_addr, &bdstr) + 12);
        switch (state) {
        case BTHF_CLIENT_CONNECTION_STATE_DISCONNECTED: {
                 event_type = OAL_EVENT_HF_CLIENT_DISCONNECTED;
@@ -202,8 +205,7 @@ void cb_hf_client_connection_state(bthf_client_connection_state_t state, unsigne
        }
        default: {
                BT_INFO("Invalid state");
-               if (event_data)
-                       g_free(event_data);
+               g_free(event_data);
                return;
        }
        }