Bluetooth: Do not dereference zero sk
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com> Acked-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>hifive-unleashed-5.1
parent
46479e6985
commit
7ddb6e0f3f
|
@ -795,7 +795,7 @@ static void l2cap_sock_kill(struct sock *sk)
|
||||||
static int l2cap_sock_shutdown(struct socket *sock, int how)
|
static int l2cap_sock_shutdown(struct socket *sock, int how)
|
||||||
{
|
{
|
||||||
struct sock *sk = sock->sk;
|
struct sock *sk = sock->sk;
|
||||||
struct l2cap_chan *chan = l2cap_pi(sk)->chan;
|
struct l2cap_chan *chan;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
BT_DBG("sock %p, sk %p", sock, sk);
|
BT_DBG("sock %p, sk %p", sock, sk);
|
||||||
|
@ -803,6 +803,8 @@ static int l2cap_sock_shutdown(struct socket *sock, int how)
|
||||||
if (!sk)
|
if (!sk)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
chan = l2cap_pi(sk)->chan;
|
||||||
|
|
||||||
lock_sock(sk);
|
lock_sock(sk);
|
||||||
if (!sk->sk_shutdown) {
|
if (!sk->sk_shutdown) {
|
||||||
if (chan->mode == L2CAP_MODE_ERTM)
|
if (chan->mode == L2CAP_MODE_ERTM)
|
||||||
|
|
Loading…
Reference in New Issue