diff --git a/android/avrcp-lib.c b/android/avrcp-lib.c
index 05d651c..37f963f 100644
--- a/android/avrcp-lib.c
+++ b/android/avrcp-lib.c
const struct avrcp_control_handler *handler;
struct avrcp_header *pdu = (void *) operands;
uint32_t company_id = ntoh24(pdu->company_id);
+ uint16_t params_len = ntohs(pdu->params_len);
if (company_id != IEEEID_BTSIG) {
*code = AVC_CTYPE_NOT_IMPLEMENTED;
return 0;
}
- DBG("AVRCP PDU 0x%02X, len 0x%04X", pdu->pdu_id,
- ntohs(pdu->params_len));
+ DBG("AVRCP PDU 0x%02X, len 0x%04X", pdu->pdu_id, params_len);
pdu->packet_type = 0;
pdu->rsvd = 0;
goto reject;
}
- *code = handler->func(session, transaction, &pdu->params_len,
+ *code = handler->func(session, transaction, ¶ms_len,
pdu->params, session->control_data);
- return AVRCP_HEADER_LENGTH + ntohs(pdu->params_len);
+ pdu->params_len = htons(params_len);
+
+ return AVRCP_HEADER_LENGTH + params_len;
reject:
pdu->params_len = htons(1);