summaryrefslogtreecommitdiff
path: root/android/avrcp-lib.c
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2014-05-05 15:23:50 +0300
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2014-05-05 15:40:30 +0300
commit1dd3ac5875ee7756dd1b10e0ac50bf20e0ff011d (patch)
tree15c6e7be43b11faa5748ac22424227d8bc3e88e4 /android/avrcp-lib.c
parent0276e3a164b94d09522f95d31c9af69214fd687d (diff)
downloadbluez-1dd3ac5875ee7756dd1b10e0ac50bf20e0ff011d.tar.gz
android/avrcp-lib: Fix avrcp_get_player_attribute_text
This fixes avrcp_get_player_attribute_text generating incorrect PDUs.
Diffstat (limited to 'android/avrcp-lib.c')
-rw-r--r--android/avrcp-lib.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/android/avrcp-lib.c b/android/avrcp-lib.c
index e56803f9a..077343f9b 100644
--- a/android/avrcp-lib.c
+++ b/android/avrcp-lib.c
@@ -1489,13 +1489,19 @@ done:
int avrcp_get_player_attribute_text(struct avrcp *session, uint8_t number,
uint8_t *attrs)
{
- struct iovec iov;
+ struct iovec iov[2];
- iov.iov_base = attrs;
- iov.iov_len = number;
+ if (!number || number > AVRCP_ATTRIBUTE_LAST)
+ return -EINVAL;
+
+ iov[0].iov_base = &number;
+ iov[0].iov_len = sizeof(number);
+
+ iov[1].iov_base = attrs;
+ iov[1].iov_len = number;
return avrcp_send_req(session, AVC_CTYPE_STATUS, AVC_SUBUNIT_PANEL,
- AVRCP_GET_PLAYER_ATTRIBUTE_TEXT, &iov, 1,
+ AVRCP_GET_PLAYER_ATTRIBUTE_TEXT, iov, 2,
get_attribute_text_rsp, session);
}