diff --git a/system/bta/av/bta_av_act.cc b/system/bta/av/bta_av_act.cc index ab737dbfb1396be7f75be12698d340351c08c2d1..4b4a1f11cb2f1388c1e9594aaedf28124222c45a 100644 --- a/system/bta/av/bta_av_act.cc +++ b/system/bta/av/bta_av_act.cc @@ -1894,7 +1894,9 @@ tBTA_AV_FEAT bta_av_check_peer_features(uint16_t service_uuid) { /* get supported categories */ p_attr = get_legacy_stack_sdp_api()->record.SDP_FindAttributeInRec( p_rec, ATTR_ID_SUPPORTED_FEATURES); - if (p_attr != NULL) { + if (p_attr != NULL && + SDP_DISC_ATTR_TYPE(p_attr->attr_len_type) == UINT_DESC_TYPE && + SDP_DISC_ATTR_LEN(p_attr->attr_len_type) >= 2) { categories = p_attr->attr_value.v.u16; if (categories & AVRC_SUPF_CT_CAT2) peer_features |= (BTA_AV_FEAT_ADV_CTRL); @@ -1960,7 +1962,9 @@ tBTA_AV_FEAT bta_avk_check_peer_features(uint16_t service_uuid) { tSDP_DISC_ATTR* p_attr = get_legacy_stack_sdp_api()->record.SDP_FindAttributeInRec( p_rec, ATTR_ID_SUPPORTED_FEATURES); - if (p_attr != NULL) { + if (p_attr != NULL && + SDP_DISC_ATTR_TYPE(p_attr->attr_len_type) == UINT_DESC_TYPE && + SDP_DISC_ATTR_LEN(p_attr->attr_len_type) >= 2) { uint16_t categories = p_attr->attr_value.v.u16; /* * Though Absolute Volume came after in 1.4 and above, but there are