• 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ão246034af8b438e77c78ef242335902430bc9309d (tree)
Hora2019-11-23 04:29:14
AutorAdam Seaton <aseaton@goog...>
CommiterAdam Seaton

Mensagem de Log

Revert "Fix potential OOB write in btm_read_remote_ext_features_complete"

This reverts commit 33a71f2955f1254d2f96fd4a4d16d44463a21423.

Reason for revert: reverting due to functional regressions in Auto.

Bug: 144205318
Change-Id: I6e1d62f370fc910e91c0919dcb3f37fa2f3c7bf5

Mudança Sumário

Diff

--- a/stack/btm/btm_acl.cc
+++ b/stack/btm/btm_acl.cc
@@ -46,7 +46,6 @@
4646 #include "device/include/controller.h"
4747 #include "hcidefs.h"
4848 #include "hcimsgs.h"
49-#include "log/log.h"
5049 #include "l2c_int.h"
5150 #include "osi/include/osi.h"
5251
@@ -1063,7 +1062,7 @@ void btm_read_remote_features_complete(uint8_t* p) {
10631062 * Returns void
10641063 *
10651064 ******************************************************************************/
1066-void btm_read_remote_ext_features_complete(uint8_t* p, uint8_t evt_len) {
1065+void btm_read_remote_ext_features_complete(uint8_t* p) {
10671066 tACL_CONN* p_acl_cb;
10681067 uint8_t page_num, max_page;
10691068 uint16_t handle;
@@ -1071,14 +1070,6 @@ void btm_read_remote_ext_features_complete(uint8_t* p, uint8_t evt_len) {
10711070
10721071 BTM_TRACE_DEBUG("btm_read_remote_ext_features_complete");
10731072
1074- if (evt_len < HCI_EXT_FEATURES_SUCCESS_EVT_LEN) {
1075- android_errorWriteLog(0x534e4554, "141552859");
1076- BTM_TRACE_ERROR(
1077- "btm_read_remote_ext_features_complete evt length too short. length=%d",
1078- evt_len);
1079- return;
1080- }
1081-
10821073 ++p;
10831074 STREAM_TO_UINT16(handle, p);
10841075 STREAM_TO_UINT8(page_num, p);
@@ -1098,13 +1089,6 @@ void btm_read_remote_ext_features_complete(uint8_t* p, uint8_t evt_len) {
10981089 return;
10991090 }
11001091
1101- if (page_num > max_page) {
1102- android_errorWriteLog(0x534e4554, "141552859");
1103- BTM_TRACE_ERROR("btm_read_remote_ext_features_complete num_page=%d invalid",
1104- page_num);
1105- return;
1106- }
1107-
11081092 p_acl_cb = &btm_cb.acl_db[acl_idx];
11091093
11101094 /* Copy the received features page */
--- a/stack/btm/btm_int.h
+++ b/stack/btm/btm_int.h
@@ -110,7 +110,7 @@ extern void btm_acl_encrypt_change(uint16_t handle, uint8_t status,
110110 extern uint16_t btm_get_acl_disc_reason_code(void);
111111 extern tBTM_STATUS btm_remove_acl(BD_ADDR bd_addr, tBT_TRANSPORT transport);
112112 extern void btm_read_remote_features_complete(uint8_t* p);
113-extern void btm_read_remote_ext_features_complete(uint8_t* p, uint8_t evt_len);
113+extern void btm_read_remote_ext_features_complete(uint8_t* p);
114114 extern void btm_read_remote_ext_features_failed(uint8_t status,
115115 uint16_t handle);
116116 extern void btm_read_remote_version_complete(uint8_t* p);
--- a/stack/btu/btu_hcif.cc
+++ b/stack/btu/btu_hcif.cc
@@ -72,8 +72,7 @@ static void btu_hcif_authentication_comp_evt(uint8_t* p);
7272 static void btu_hcif_rmt_name_request_comp_evt(uint8_t* p, uint16_t evt_len);
7373 static void btu_hcif_encryption_change_evt(uint8_t* p);
7474 static void btu_hcif_read_rmt_features_comp_evt(uint8_t* p);
75-static void btu_hcif_read_rmt_ext_features_comp_evt(uint8_t* p,
76- uint8_t evt_len);
75+static void btu_hcif_read_rmt_ext_features_comp_evt(uint8_t* p);
7776 static void btu_hcif_read_rmt_version_comp_evt(uint8_t* p);
7877 static void btu_hcif_qos_setup_comp_evt(uint8_t* p);
7978 static void btu_hcif_command_complete_evt(BT_HDR* response, void* context);
@@ -185,7 +184,7 @@ void btu_hcif_process_event(UNUSED_ATTR uint8_t controller_id, BT_HDR* p_msg) {
185184 btu_hcif_read_rmt_features_comp_evt(p);
186185 break;
187186 case HCI_READ_RMT_EXT_FEATURES_COMP_EVT:
188- btu_hcif_read_rmt_ext_features_comp_evt(p, hci_evt_len);
187+ btu_hcif_read_rmt_ext_features_comp_evt(p);
189188 break;
190189 case HCI_READ_RMT_VERSION_COMP_EVT:
191190 btu_hcif_read_rmt_version_comp_evt(p);
@@ -801,8 +800,7 @@ static void btu_hcif_read_rmt_features_comp_evt(uint8_t* p) {
801800 * Returns void
802801 *
803802 ******************************************************************************/
804-static void btu_hcif_read_rmt_ext_features_comp_evt(uint8_t* p,
805- uint8_t evt_len) {
803+static void btu_hcif_read_rmt_ext_features_comp_evt(uint8_t* p) {
806804 uint8_t* p_cur = p;
807805 uint8_t status;
808806 uint16_t handle;
@@ -810,7 +808,7 @@ static void btu_hcif_read_rmt_ext_features_comp_evt(uint8_t* p,
810808 STREAM_TO_UINT8(status, p_cur);
811809
812810 if (status == HCI_SUCCESS)
813- btm_read_remote_ext_features_complete(p, evt_len);
811+ btm_read_remote_ext_features_complete(p);
814812 else {
815813 STREAM_TO_UINT16(handle, p_cur);
816814 btm_read_remote_ext_features_failed(status, handle);
--- a/stack/include/hcidefs.h
+++ b/stack/include/hcidefs.h
@@ -1567,8 +1567,6 @@ typedef struct {
15671567
15681568 #define HCI_FEATURE_BYTES_PER_PAGE 8
15691569
1570-#define HCI_EXT_FEATURES_SUCCESS_EVT_LEN 13
1571-
15721570 #define HCI_FEATURES_KNOWN(x) \
15731571 (((x)[0] | (x)[1] | (x)[2] | (x)[3] | (x)[4] | (x)[5] | (x)[6] | (x)[7]) != 0)
15741572