diff options
Diffstat (limited to 'stack/avrc/avrc_pars_tg.cc')
-rw-r--r-- | stack/avrc/avrc_pars_tg.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/stack/avrc/avrc_pars_tg.cc b/stack/avrc/avrc_pars_tg.cc index 190a88d75..5bae32e52 100644 --- a/stack/avrc/avrc_pars_tg.cc +++ b/stack/avrc/avrc_pars_tg.cc @@ -43,6 +43,12 @@ static tAVRC_STS avrc_ctrl_pars_vendor_cmd(tAVRC_MSG_VENDOR* p_msg, tAVRC_COMMAND* p_result) { tAVRC_STS status = AVRC_STS_NO_ERROR; + if (p_msg->vendor_len < 4) { // 4 == pdu + reserved byte + len as uint16 + AVRC_TRACE_WARNING("%s: message length %d too short: must be at least 4", + __func__, p_msg->vendor_len); + android_errorWriteLog(0x534e4554, "205571133"); + return AVRC_STS_INTERNAL_ERR; + } uint8_t* p = p_msg->p_vendor_data; p_result->pdu = *p++; AVRC_TRACE_DEBUG("%s pdu:0x%x", __func__, p_result->pdu); |