summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Kyunglyul Hyun <klhyun@google.com> 2024-04-26 07:34:33 +0000
committer Kyunglyul Hyun <klhyun@google.com> 2024-04-26 07:44:24 +0000
commitbf62a652dab2d8bd0a385ffe062fb1c14ae34e96 (patch)
treeb6c312535acab22f2d223c11336466850202972d
parentda3eb99be73259f77626b65426ade10dea0a955e (diff)
Handle no service engine clcb
When clcb is not found, return instead of accessing out of bound memory. Flag: EXEMPT, out of bound check Bug: 180418988 Test: m -j; Ignore-AOSP-First: security issue Change-Id: I2373d79ce8a6307197764202e77445669f24af7e
-rw-r--r--system/stack/srvc/srvc_eng.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/system/stack/srvc/srvc_eng.cc b/system/stack/srvc/srvc_eng.cc
index 7786a7c52c..c6eaff3a14 100644
--- a/system/stack/srvc/srvc_eng.cc
+++ b/system/stack/srvc/srvc_eng.cc
@@ -238,6 +238,10 @@ static void srvc_eng_s_request_cback(uint16_t conn_id, uint32_t trans_id,
tGATTS_RSP rsp_msg;
uint8_t act = SRVC_ACT_IGNORE;
uint8_t clcb_idx = srvc_eng_find_clcb_idx_by_conn_id(conn_id);
+ if (clcb_idx == SRVC_MAX_APPS) {
+ log::error("Can't find clcb, id:{}", conn_id);
+ return;
+ }
log::verbose("srvc_eng_s_request_cback : recv type (0x{:02x})", type);