• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

system/bt


Commit MetaInfo

Revisãodb7ae0ecc0c908178a9f0250e3c81b163f171e80 (tree)
Hora2019-11-26 11:37:43
AutorTed Wang <tedwang@goog...>
CommiterAndroid (Google) Code Review

Mensagem de Log

Merge "Revert "Fix potential OOB write in btm_read_remote_ext_features_complete"" into qt-dev

Mudança Sumário

Diff

--- a/stack/btm/btm_acl.cc
+++ b/stack/btm/btm_acl.cc
@@ -1085,7 +1085,7 @@ void btm_read_remote_features_complete(uint8_t* p) {
10851085 * Returns void
10861086 *
10871087 ******************************************************************************/
1088-void btm_read_remote_ext_features_complete(uint8_t* p, uint8_t evt_len) {
1088+void btm_read_remote_ext_features_complete(uint8_t* p) {
10891089 tACL_CONN* p_acl_cb;
10901090 uint8_t page_num, max_page;
10911091 uint16_t handle;
@@ -1093,14 +1093,6 @@ void btm_read_remote_ext_features_complete(uint8_t* p, uint8_t evt_len) {
10931093
10941094 BTM_TRACE_DEBUG("btm_read_remote_ext_features_complete");
10951095
1096- if (evt_len < HCI_EXT_FEATURES_SUCCESS_EVT_LEN) {
1097- android_errorWriteLog(0x534e4554, "141552859");
1098- BTM_TRACE_ERROR(
1099- "btm_read_remote_ext_features_complete evt length too short. length=%d",
1100- evt_len);
1101- return;
1102- }
1103-
11041096 ++p;
11051097 STREAM_TO_UINT16(handle, p);
11061098 STREAM_TO_UINT8(page_num, p);
@@ -1120,13 +1112,6 @@ void btm_read_remote_ext_features_complete(uint8_t* p, uint8_t evt_len) {
11201112 return;
11211113 }
11221114
1123- if (page_num > max_page) {
1124- android_errorWriteLog(0x534e4554, "141552859");
1125- BTM_TRACE_ERROR("btm_read_remote_ext_features_complete num_page=%d invalid",
1126- page_num);
1127- return;
1128- }
1129-
11301115 p_acl_cb = &btm_cb.acl_db[acl_idx];
11311116
11321117 /* Copy the received features page */
--- a/stack/btm/btm_int.h
+++ b/stack/btm/btm_int.h
@@ -119,7 +119,7 @@ extern uint16_t btm_get_acl_disc_reason_code(void);
119119 extern tBTM_STATUS btm_remove_acl(const RawAddress& bd_addr,
120120 tBT_TRANSPORT transport);
121121 extern void btm_read_remote_features_complete(uint8_t* p);
122-extern void btm_read_remote_ext_features_complete(uint8_t* p, uint8_t evt_len);
122+extern void btm_read_remote_ext_features_complete(uint8_t* p);
123123 extern void btm_read_remote_ext_features_failed(uint8_t status,
124124 uint16_t handle);
125125 extern void btm_read_remote_version_complete(uint8_t* p);
--- a/stack/btu/btu_hcif.cc
+++ b/stack/btu/btu_hcif.cc
@@ -75,8 +75,7 @@ static void btu_hcif_authentication_comp_evt(uint8_t* p);
7575 static void btu_hcif_rmt_name_request_comp_evt(uint8_t* p, uint16_t evt_len);
7676 static void btu_hcif_encryption_change_evt(uint8_t* p);
7777 static void btu_hcif_read_rmt_features_comp_evt(uint8_t* p);
78-static void btu_hcif_read_rmt_ext_features_comp_evt(uint8_t* p,
79- uint8_t evt_len);
78+static void btu_hcif_read_rmt_ext_features_comp_evt(uint8_t* p);
8079 static void btu_hcif_read_rmt_version_comp_evt(uint8_t* p);
8180 static void btu_hcif_qos_setup_comp_evt(uint8_t* p);
8281 static void btu_hcif_command_complete_evt(BT_HDR* response, void* context);
@@ -296,7 +295,7 @@ void btu_hcif_process_event(UNUSED_ATTR uint8_t controller_id, BT_HDR* p_msg) {
296295 btu_hcif_read_rmt_features_comp_evt(p);
297296 break;
298297 case HCI_READ_RMT_EXT_FEATURES_COMP_EVT:
299- btu_hcif_read_rmt_ext_features_comp_evt(p, hci_evt_len);
298+ btu_hcif_read_rmt_ext_features_comp_evt(p);
300299 break;
301300 case HCI_READ_RMT_VERSION_COMP_EVT:
302301 btu_hcif_read_rmt_version_comp_evt(p);
@@ -1212,8 +1211,7 @@ static void btu_hcif_read_rmt_features_comp_evt(uint8_t* p) {
12121211 * Returns void
12131212 *
12141213 ******************************************************************************/
1215-static void btu_hcif_read_rmt_ext_features_comp_evt(uint8_t* p,
1216- uint8_t evt_len) {
1214+static void btu_hcif_read_rmt_ext_features_comp_evt(uint8_t* p) {
12171215 uint8_t* p_cur = p;
12181216 uint8_t status;
12191217 uint16_t handle;
@@ -1221,7 +1219,7 @@ static void btu_hcif_read_rmt_ext_features_comp_evt(uint8_t* p,
12211219 STREAM_TO_UINT8(status, p_cur);
12221220
12231221 if (status == HCI_SUCCESS)
1224- btm_read_remote_ext_features_complete(p, evt_len);
1222+ btm_read_remote_ext_features_complete(p);
12251223 else {
12261224 STREAM_TO_UINT16(handle, p_cur);
12271225 btm_read_remote_ext_features_failed(status, handle);
--- a/stack/include/hcidefs.h
+++ b/stack/include/hcidefs.h
@@ -1323,8 +1323,6 @@ typedef struct {
13231323
13241324 #define HCI_FEATURE_BYTES_PER_PAGE 8
13251325
1326-#define HCI_EXT_FEATURES_SUCCESS_EVT_LEN 13
1327-
13281326 #define HCI_FEATURES_KNOWN(x) \
13291327 (((x)[0] | (x)[1] | (x)[2] | (x)[3] | (x)[4] | (x)[5] | (x)[6] | (x)[7]) != 0)
13301328