--- android/hal-hidhost.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/android/hal-hidhost.c b/android/hal-hidhost.c index ce3dcd7..ec120ed 100644 --- a/android/hal-hidhost.c +++ b/android/hal-hidhost.c @@ -342,7 +342,8 @@ static bt_status_t set_report(bt_bdaddr_t *bd_addr, static bt_status_t send_data(bt_bdaddr_t *bd_addr, char *data) { - struct hal_cmd_hidhost_send_data cmd; + struct hal_cmd_hidhost_send_data *cmd; + int cmd_len, status; DBG(""); @@ -352,10 +353,19 @@ static bt_status_t send_data(bt_bdaddr_t *bd_addr, char *data) if (!bd_addr || !data) return BT_STATUS_PARM_INVALID; - memcpy(cmd.bdaddr, bd_addr, sizeof(cmd.bdaddr)); + cmd_len = sizeof(*cmd) + sizeof(struct hal_cmd_hidhost_send_data) + + 1 + strlen(data); - return hal_ipc_cmd(HAL_SERVICE_ID_HIDHOST, HAL_OP_HIDHOST_SEND_DATA, - sizeof(cmd), &cmd, 0, NULL, NULL); + cmd = malloc(cmd_len); + memset(cmd, 0, cmd_len); + memcpy(cmd->bdaddr, bd_addr, sizeof(cmd->bdaddr)); + cmd->len = strlen(data); + memcpy(cmd->data, data, cmd->len); + + status = hal_ipc_cmd(HAL_SERVICE_ID_HIDHOST, HAL_OP_HIDHOST_SEND_DATA, + cmd_len, cmd, 0, NULL, NULL); + free(cmd); + return status; } static bt_status_t init(bthh_callbacks_t *callbacks) -- 1.8.3.2 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html