sk->sk_state = BT_DISCONN;
sco_sock_set_timer(sk, SCO_DISCONN_TIMEOUT);
BT_DBG("BT_CONNECTED -> BT_DISCONN sco_pi(sk) %p", sco_pi(sk));
- BT_DBG("BT_DISCONN sco_pi(sk)->conn %p", sco_pi(sk)->conn);
- BT_DBG("BT_DISCONN sco_pi(sk)->conn->hcon %p", sco_pi(sk)->conn->hcon);
+ if (!sco_pi(sk)) break;
+ BT_DBG("BT_CONNECTED -> BT_DISCONN sco_pi(sk)->conn %p", sco_pi(sk)->conn);
+ if (!sco_pi(sk)->conn) break;
+ BT_DBG("BT_CONNECTED -> BT_DISCONN sco_pi(sk)->conn->hcon %p", sco_pi(sk)->conn->hcon);
+ if (!sco_pi(sk)->conn->hcon) break;
hci_conn_put(sco_pi(sk)->conn->hcon);
+ BT_DBG("BT_CONNECTED -> BT_DISCONN sco_pi(sk)->conn->hcon = NULL");
sco_pi(sk)->conn->hcon = NULL;
} else
sco_chan_del(sk, ECONNRESET);