aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHansong Zhang <hsz@google.com>2018-07-12 10:44:29 -0700
committerandroid-build-team Robot <android-build-team-robot@google.com>2018-07-27 18:46:14 +0000
commitd5b44f6522c3294d6f5fd71bc6670f625f716460 (patch)
treefa2255512588b51746703d6e058fbdf66b7b3424
parentbdbabb2ca4ebb4dc5971d3d42cb12f8048e23a23 (diff)
downloadbt-d5b44f6522c3294d6f5fd71bc6670f625f716460.tar.gz
Fix OOB read in process_l2cap_cmd
Test: manual Bug: 79488381 Change-Id: I723866ed40d3647fed99875f659bb95df96a6969 (cherry picked from commit 5bb66307b555b17d1764e116316ce50c687c9653)
-rw-r--r--stack/l2cap/l2c_main.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/stack/l2cap/l2c_main.cc b/stack/l2cap/l2c_main.cc
index 2574f88c5..a69c02942 100644
--- a/stack/l2cap/l2c_main.cc
+++ b/stack/l2cap/l2c_main.cc
@@ -511,6 +511,7 @@ static void process_l2cap_cmd(tL2C_LCB* p_lcb, uint8_t* p, uint16_t pkt_len) {
default:
/* sanity check option length */
if ((cfg_len + L2CAP_CFG_OPTION_OVERHEAD) <= cmd_len) {
+ if (p + cfg_len > p_next_cmd) return;
p += cfg_len;
if ((cfg_code & 0x80) == 0) {
cfg_rej_len += cfg_len + L2CAP_CFG_OPTION_OVERHEAD;