summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChienyuan <chienyuanhuang@google.com>2018-08-08 11:21:28 +0800
committerTim Schumacher <timschumi@gmx.de>2018-11-18 07:45:39 +0000
commit32e4c395a87b39adfaedde9a0a4a9216cafe7d7c (patch)
treea0e5cdca8ba29a0039b9aab44ac3147b736ab07f
parent6a3b685eeaf470e679af563e0277c1e15476d02a (diff)
downloadandroid_system_bt-32e4c395a87b39adfaedde9a0a4a9216cafe7d7c.tar.gz
android_system_bt-32e4c395a87b39adfaedde9a0a4a9216cafe7d7c.tar.bz2
android_system_bt-32e4c395a87b39adfaedde9a0a4a9216cafe7d7c.zip
Check packet length in bta_av_proc_meta_cmd
Bug: 111893951 Test: manual - connect A2DP Change-Id: Ibbf347863dfd29ea3385312e9dde1082bc90d2f3 (cherry picked from commit ed51887f921263219bcd2fbf6650ead5ec8d334e)
-rw-r--r--bta/av/bta_av_act.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/bta/av/bta_av_act.c b/bta/av/bta_av_act.c
index d5fb64cc6..39919773a 100644
--- a/bta/av/bta_av_act.c
+++ b/bta/av/bta_av_act.c
@@ -37,6 +37,7 @@
#include "avdt_api.h"
#include "utl.h"
#include "l2c_api.h"
+#include "log/log.h"
#include "osi/include/list.h"
#if( defined BTA_AR_INCLUDED ) && (BTA_AR_INCLUDED == TRUE)
#include "bta_ar_api.h"
@@ -861,11 +862,17 @@ tBTA_AV_EVT bta_av_proc_meta_cmd(tAVRC_RESPONSE *p_rc_rsp, tBTA_AV_RC_MSG *p_ms
case AVRC_PDU_GET_CAPABILITIES:
/* process GetCapabilities command without reporting the event to app */
evt = 0;
+ if (p_vendor->vendor_len != 5)
+ {
+ android_errorWriteLog(0x534e4554, "111893951");
+ p_rc_rsp->get_caps.status = AVRC_STS_INTERNAL_ERR;
+ break;
+ }
u8 = *(p_vendor->p_vendor_data + 4);
p = p_vendor->p_vendor_data + 2;
p_rc_rsp->get_caps.capability_id = u8;
BE_STREAM_TO_UINT16 (u16, p);
- if ((u16 != 1) || (p_vendor->vendor_len != 5))
+ if (u16 != 1)
{
p_rc_rsp->get_caps.status = AVRC_STS_INTERNAL_ERR;
}