From: Pavlin Radoslavov Date: Tue, 14 Mar 2017 21:46:15 +0000 (-0700) Subject: DO NOT MERGE X-Git-Tag: android-x86-7.1-r3^2~92 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=09e0687799052f92f3a9404dc7fe08a5c7b0b051;p=android-x86%2Fsystem-bt.git DO NOT MERGE resolve merge conflicts of a3ee2e35 to nyc-dev Bug: 34946955 Change-Id: Ieff690edd3aa527a0639483ec8e1e3b661f0ecc4 Merged-In: I0b6f50dee05a58db8c043b4d01fb58c9acbeede9 (cherry picked from commit a33dd28064b98a63c7050814d7939e0a8b515b0e) --- diff --git a/stack/l2cap/l2c_main.c b/stack/l2cap/l2c_main.c index dab56a24d..3c48d6974 100644 --- a/stack/l2cap/l2c_main.c +++ b/stack/l2cap/l2c_main.c @@ -28,6 +28,8 @@ #include #include +#include + #include "bt_target.h" #include "btm_int.h" #include "btu.h" @@ -132,6 +134,14 @@ void l2c_rcv_acl_data (BT_HDR *p_msg) STREAM_TO_UINT16 (hci_len, p); p_msg->offset += 4; + if (hci_len < L2CAP_PKT_OVERHEAD) { + /* Must receive at least the L2CAP length and CID */ + L2CAP_TRACE_WARNING ("L2CAP - got incorrect hci header"); + android_errorWriteLog(0x534e4554, "34946955"); + osi_free(p_msg); + return; + } + /* Extract the length and CID */ STREAM_TO_UINT16 (l2cap_len, p); STREAM_TO_UINT16 (rcv_cid, p); @@ -154,17 +164,8 @@ void l2c_rcv_acl_data (BT_HDR *p_msg) } } - if (hci_len >= L2CAP_PKT_OVERHEAD) /* Must receive at least the L2CAP length and CID.*/ - { - p_msg->len = hci_len - L2CAP_PKT_OVERHEAD; - p_msg->offset += L2CAP_PKT_OVERHEAD; - } - else - { - L2CAP_TRACE_WARNING ("L2CAP - got incorrect hci header" ); - osi_free(p_msg); - return; - } + p_msg->len = hci_len - L2CAP_PKT_OVERHEAD; + p_msg->offset += L2CAP_PKT_OVERHEAD; if (l2cap_len != p_msg->len) {