Bluetooth: Fix connection object leak
When canceling outgoing connection initial reference was not dropped. btshell> connect 11:22:33:44:55:66 public [bt] [DBG] bt_conn_set_state: (0x0011a1ac) disconnected -> connect-scan [bt] [DBG] bt_conn_ref: (0x0011a1ac) handle 0 ref 2 [bt] [DBG] bt_conn_ref: (0x0011a1ac) handle 0 ref 3 [bt] [DBG] bt_conn_unref: (0x0011a1ac) handle 0 ref 2 [bt] [DBG] bt_conn_prepare_events: (0x0011b3a0) [bt] [DBG] bt_conn_prepare_events: (0x0011b3a0) [bt] [DBG] bt_conn_prepare_events: (0x0011b3a0) Connection pending [bt] [DBG] bt_conn_unref: (0x0011a1ac) handle 0 ref 1 btshell> btshell> disconnect 11:22:33:44:55:66 public [bt] [DBG] bt_conn_ref: (0x0011a1ac) handle 0 ref 2 [bt] [DBG] bt_conn_ref: (0x0011a1ac) handle 0 ref 3 [bt] [DBG] bt_conn_unref: (0x0011a1ac) handle 0 ref 2 [bt] [DBG] bt_conn_set_state: (0x0011a1ac) connect-scan -> disconnected [bt] [DBG] bt_conn_prepare_events: (0x0011b3a0) [bt] [DBG] bt_conn_unref: (0x0011a1ac) handle 0 ref 1 btshell> btshell> connect 11:22:33:44:55:66 public [bt] [DBG] bt_conn_ref: (0x0011a1ac) handle 0 ref 2 [bt] [DBG] bt_conn_unref: (0x0011a1ac) handle 0 ref 1 Connection failed btshell> Change-Id: I0c38bbed8d1712d07a579275355e7dcd8d6b0b38 Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
This commit is contained in:
parent
667e3af3dd
commit
da9f9cc3f7
1 changed files with 5 additions and 2 deletions
|
@ -1190,9 +1190,12 @@ void bt_conn_set_state(struct bt_conn *conn, bt_conn_state_t state)
|
|||
/* conn->err will be set in this case */
|
||||
notify_connected(conn);
|
||||
bt_conn_unref(conn);
|
||||
} else if (old_state == BT_CONN_CONNECT_SCAN && conn->err) {
|
||||
} else if (old_state == BT_CONN_CONNECT_SCAN) {
|
||||
/* this indicate LE Create Connection failed */
|
||||
notify_connected(conn);
|
||||
if (conn->err) {
|
||||
notify_connected(conn);
|
||||
}
|
||||
|
||||
bt_conn_unref(conn);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue