aboutsummaryrefslogtreecommitdiff
path: root/stack/hid/hidh_conn.cc
diff options
context:
space:
mode:
Diffstat (limited to 'stack/hid/hidh_conn.cc')
-rw-r--r--stack/hid/hidh_conn.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/stack/hid/hidh_conn.cc b/stack/hid/hidh_conn.cc
index 1ab03b75f..a41aa909d 100644
--- a/stack/hid/hidh_conn.cc
+++ b/stack/hid/hidh_conn.cc
@@ -42,6 +42,7 @@
#include "hidh_api.h"
#include "hidh_int.h"
+#include "log/log.h"
#include "osi/include/osi.h"
static uint8_t find_conn_by_cid(uint16_t cid);
@@ -799,6 +800,14 @@ static void hidh_l2cif_data_ind(uint16_t l2cap_cid, BT_HDR* p_msg) {
return;
}
+ if (p_msg->len < 1) {
+ HIDH_TRACE_WARNING("Rcvd L2CAP data, invalid length %d, should be >= 1",
+ p_msg->len);
+ osi_free(p_msg);
+ android_errorWriteLog(0x534e4554, "80493272");
+ return;
+ }
+
ttype = HID_GET_TRANS_FROM_HDR(*p_data);
param = HID_GET_PARAM_FROM_HDR(*p_data);
rep_type = param & HID_PAR_REP_TYPE_MASK;