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

Commit 7307dc2f authored by Lawrance Liu's avatar Lawrance Liu Committed by Jakub Pawlowski
Browse files

Improve HOGP input report error handling

This fixes com.android.bluetooth crash when receiving HOGP input report
for unknown characteristic.

Test: Pair/Unpair BLE mouse/keyboard devices.
parent 04e5a2e7
Loading
Loading
Loading
Loading
+10 −2
Original line number Original line Diff line number Diff line
@@ -1791,12 +1791,19 @@ void bta_hh_le_input_rpt_notify(tBTA_GATTC_NOTIFY *p_data)


    if (p_dev_cb == NULL)
    if (p_dev_cb == NULL)
    {
    {
        APPL_TRACE_ERROR("notification received from Unknown device");
        APPL_TRACE_ERROR("%s: notification received from Unknown device, conn_id: 0x%04x",
            __func__, p_data->conn_id);
        return;
        return;
    }
    }


    const tBTA_GATTC_CHARACTERISTIC *p_char = BTA_GATTC_GetCharacteristic(p_dev_cb->conn_id,
    const tBTA_GATTC_CHARACTERISTIC *p_char = BTA_GATTC_GetCharacteristic(p_dev_cb->conn_id,
                                                                          p_data->handle);
                                                                          p_data->handle);
    if (p_char == NULL)
    {
        APPL_TRACE_ERROR("%s: notification received for Unknown Characteristic, conn_id: 0x%04x, handle: 0x%04x",
            __func__, p_dev_cb->conn_id, p_data->handle);
        return;
    }


    app_id= p_dev_cb->app_id;
    app_id= p_dev_cb->app_id;


@@ -1806,7 +1813,8 @@ void bta_hh_le_input_rpt_notify(tBTA_GATTC_NOTIFY *p_data)
                                        p_char->handle);
                                        p_char->handle);
    if (p_rpt == NULL)
    if (p_rpt == NULL)
    {
    {
        APPL_TRACE_ERROR("notification received for Unknown Report");
        APPL_TRACE_ERROR("%s: notification received for Unknown Report, uuid: 0x%04x, handle: 0x%04x",
            __func__, p_char->uuid.uu.uuid16, p_char->handle);
        return;
        return;
    }
    }