summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-07-19 07:27:32 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-07-19 07:27:32 +0000
commit4b318647307715488ecdfcc5ae4f224ddb2497a7 (patch)
tree0fa4503cfc9c84199b5a3ea21b1f1ecf048a4b12
parent8e00933f0606ea1e7fe0d93121c46aab81e63cb6 (diff)
parent985644c8ca2bc3d99fb37a46df2c7f615c58ae88 (diff)
downloadandroid_system_bt-4b318647307715488ecdfcc5ae4f224ddb2497a7.tar.gz
android_system_bt-4b318647307715488ecdfcc5ae4f224ddb2497a7.tar.bz2
android_system_bt-4b318647307715488ecdfcc5ae4f224ddb2497a7.zip
release-request-5b56a53d-a8e3-4705-b74f-5b671f2123c3-for-git_oc-dr1-release-4193779 snap-temp-L25500000083614009
Change-Id: If17bf9ad9845f409746191d1867140f479041b47
-rw-r--r--bta/dm/bta_dm_act.cc8
-rw-r--r--stack/bnep/bnep_main.cc1
-rw-r--r--stack/bnep/bnep_utils.cc4
3 files changed, 10 insertions, 3 deletions
diff --git a/bta/dm/bta_dm_act.cc b/bta/dm/bta_dm_act.cc
index 6faae8e3a..a215c49fa 100644
--- a/bta/dm/bta_dm_act.cc
+++ b/bta/dm/bta_dm_act.cc
@@ -38,6 +38,7 @@
#include "bta_dm_co.h"
#include "bta_dm_int.h"
#include "bta_sys.h"
+#include "btcore/include/bdaddr.h"
#include "btm_api.h"
#include "btm_int.h"
#include "btu.h"
@@ -2612,9 +2613,14 @@ static uint8_t bta_dm_authentication_complete_cback(
bta_dm_cb.p_sec_cback(BTA_DM_AUTH_CMPL_EVT, &sec_event);
if (result != HCI_ERR_LMP_RESPONSE_TIMEOUT &&
- result != HCI_ERR_PAGE_TIMEOUT &&
+ result != HCI_ERR_PAGE_TIMEOUT && result != HCI_ERR_CONNECTION_TOUT &&
result != HCI_ERR_CONN_FAILED_ESTABLISHMENT &&
result != HCI_ERR_KEY_MISSING) {
+ bdstr_t bd_addr_str;
+ APPL_TRACE_WARNING("%s deleting %s - result: 0x%02x", __func__,
+ bdaddr_to_string((bt_bdaddr_t*)bd_addr, bd_addr_str,
+ sizeof(bd_addr_str)),
+ result);
bta_dm_remove_sec_dev_entry(bd_addr);
}
}
diff --git a/stack/bnep/bnep_main.cc b/stack/bnep/bnep_main.cc
index ae3480dd2..b0fad6a65 100644
--- a/stack/bnep/bnep_main.cc
+++ b/stack/bnep/bnep_main.cc
@@ -525,6 +525,7 @@ static void bnep_data_ind(uint16_t l2cap_cid, BT_HDR* p_buf) {
if (ctrl_type == BNEP_SETUP_CONNECTION_REQUEST_MSG &&
p_bcb->con_state != BNEP_STATE_CONNECTED && extension_present && p &&
rem_len) {
+ osi_free(p_bcb->p_pending_data);
p_bcb->p_pending_data = (BT_HDR*)osi_malloc(rem_len + sizeof(BT_HDR));
memcpy((uint8_t*)(p_bcb->p_pending_data + 1), p, rem_len);
p_bcb->p_pending_data->len = rem_len;
diff --git a/stack/bnep/bnep_utils.cc b/stack/bnep/bnep_utils.cc
index 3f5e13eba..872f4f565 100644
--- a/stack/bnep/bnep_utils.cc
+++ b/stack/bnep/bnep_utils.cc
@@ -144,7 +144,7 @@ void bnepu_release_bcb(tBNEP_CONN* p_bcb) {
/* Drop any response pointer we may be holding */
p_bcb->con_state = BNEP_STATE_IDLE;
- p_bcb->p_pending_data = NULL;
+ osi_free_and_reset((void**)&p_bcb->p_pending_data);
/* Free transmit queue */
while (!fixed_queue_is_empty(p_bcb->xmit_q)) {
@@ -832,7 +832,7 @@ uint8_t* bnep_process_control_packet(tBNEP_CONN* p_bcb, uint8_t* p,
BNEP_TRACE_ERROR("%s: BNEP - bad ctl pkt type: %d", __func__,
control_type);
bnep_send_command_not_understood(p_bcb, control_type);
- if (is_ext) {
+ if (is_ext && (ext_len > 0)) {
if (*rem_len < (ext_len - 1)) {
goto bad_packet_length;
}