summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--system/btif/src/btif_sock_rfc.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/system/btif/src/btif_sock_rfc.cc b/system/btif/src/btif_sock_rfc.cc
index ed031863ed..19329238ca 100644
--- a/system/btif/src/btif_sock_rfc.cc
+++ b/system/btif/src/btif_sock_rfc.cc
@@ -151,6 +151,8 @@ static rfc_slot_t* find_free_slot(void) {
}
static rfc_slot_t* find_rfc_slot_by_id(uint32_t id) {
+ CHECK(id != 0);
+
for (size_t i = 0; i < ARRAY_SIZE(rfc_slots); ++i)
if (rfc_slots[i].id == id) return &rfc_slots[i];
@@ -766,7 +768,7 @@ static void jv_dm_cback(tBTA_JV_EVT event, tBTA_JV* p_data, uint32_t id) {
rs->scn = p_data->scn;
// Send channel ID to java layer
if (!send_app_scn(rs)) {
- log::warn("send_app_scn() failed, closing rs->id:{}", id);
+ log::warn("send_app_scn() failed, closing rs->id:{}", rs->id);
cleanup_rfc_slot(rs);
break;
}
@@ -774,7 +776,7 @@ static void jv_dm_cback(tBTA_JV_EVT event, tBTA_JV* p_data, uint32_t id) {
if (rs->is_service_uuid_valid) {
// BTA_JvCreateRecordByUser will only create a record if a UUID is
// specified. RFC-only profiles
- BTA_JvCreateRecordByUser(id);
+ BTA_JvCreateRecordByUser(rs->id);
} else {
// If uuid is null, just allocate a RFC channel and start the RFCOMM
// thread needed for the java layer to get a RFCOMM channel.
@@ -785,7 +787,7 @@ static void jv_dm_cback(tBTA_JV_EVT event, tBTA_JV* p_data, uint32_t id) {
"the RFCOMM server");
// now start the rfcomm server after sdp & channel # assigned
BTA_JvRfcommStartServer(rs->security, rs->scn, MAX_RFC_SESSION,
- rfcomm_cback, id);
+ rfcomm_cback, rs->id);
}
break;
}
@@ -814,7 +816,7 @@ static void jv_dm_cback(tBTA_JV_EVT event, tBTA_JV* p_data, uint32_t id) {
// Start the rfcomm server after sdp & channel # assigned.
BTA_JvRfcommStartServer(slot->security, slot->scn, MAX_RFC_SESSION,
- rfcomm_cback, id);
+ rfcomm_cback, slot->id);
break;
}