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