diff options
author | 2024-04-26 07:34:33 +0000 | |
---|---|---|
committer | 2024-04-26 07:44:24 +0000 | |
commit | bf62a652dab2d8bd0a385ffe062fb1c14ae34e96 (patch) | |
tree | b6c312535acab22f2d223c11336466850202972d | |
parent | da3eb99be73259f77626b65426ade10dea0a955e (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.cc | 4 |
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); |