diff options
author | Jukka Rissanen <jukka.rissanen@linux.intel.com> | 2014-09-29 03:55:46 -0400 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2014-09-29 04:10:02 -0400 |
commit | 59790aa2873cb3c32db02c777f08eb19faccf5fa (patch) | |
tree | 724b9fd123e4917332d6ec0682d17720ea1f3bbd /net/bluetooth | |
parent | 565766b087a6d6ff257f5b79c8ceda0188c9169f (diff) |
Bluetooth: 6lowpan: Make sure skb exists before accessing it
We need to make sure that the saved skb exists when
resuming or suspending a CoC channel. This can happen if
initial credits is 0 when channel is connected.
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth')
-rw-r--r-- | net/bluetooth/6lowpan.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c index 0920cb6ed572..5d3e6202da3d 100644 --- a/net/bluetooth/6lowpan.c +++ b/net/bluetooth/6lowpan.c | |||
@@ -950,6 +950,9 @@ static void chan_suspend_cb(struct l2cap_chan *chan) | |||
950 | 950 | ||
951 | BT_DBG("chan %p conn %p skb %p", chan, chan->conn, skb); | 951 | BT_DBG("chan %p conn %p skb %p", chan, chan->conn, skb); |
952 | 952 | ||
953 | if (!skb) | ||
954 | return; | ||
955 | |||
953 | lowpan_cb(skb)->status = -EAGAIN; | 956 | lowpan_cb(skb)->status = -EAGAIN; |
954 | } | 957 | } |
955 | 958 | ||
@@ -959,6 +962,9 @@ static void chan_resume_cb(struct l2cap_chan *chan) | |||
959 | 962 | ||
960 | BT_DBG("chan %p conn %p skb %p", chan, chan->conn, skb); | 963 | BT_DBG("chan %p conn %p skb %p", chan, chan->conn, skb); |
961 | 964 | ||
965 | if (!skb) | ||
966 | return; | ||
967 | |||
962 | lowpan_cb(skb)->status = 0; | 968 | lowpan_cb(skb)->status = 0; |
963 | } | 969 | } |
964 | 970 | ||