diff --git a/system/bta/av/bta_av_act.cc b/system/bta/av/bta_av_act.cc index 10019e7edcfbe8bc414161c55065caff40a198a6..2a921d285c089a5f3e9c2ab64d4a95434dcfe9b5 100644 --- a/system/bta/av/bta_av_act.cc +++ b/system/bta/av/bta_av_act.cc @@ -758,6 +758,13 @@ tBTA_AV_EVT bta_av_proc_meta_cmd(tAVRC_RESPONSE* p_rc_rsp, uint16_t u16; tAVRC_MSG_VENDOR* p_vendor = &p_msg->msg.vendor; + if (p_vendor->vendor_len == 0) { + p_rc_rsp->rsp.status = AVRC_STS_BAD_PARAM; + APPL_TRACE_DEBUG("%s: p_vendor->vendor_len == 0", __func__); + // the caller of this function assume 0 to be an invalid event + return 0; + } + pdu = *(p_vendor->p_vendor_data); p_rc_rsp->pdu = pdu; *p_ctype = AVRC_RSP_REJ;