Bluetooth: 6lowpan: Make sure skb exists before accessing it
authorJukka Rissanen <jukka.rissanen@linux.intel.com>
Mon, 29 Sep 2014 07:55:46 +0000 (10:55 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 29 Sep 2014 08:10:02 +0000 (10:10 +0200)
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>
net/bluetooth/6lowpan.c

index 0920cb6..5d3e620 100644 (file)
@@ -950,6 +950,9 @@ static void chan_suspend_cb(struct l2cap_chan *chan)
 
        BT_DBG("chan %p conn %p skb %p", chan, chan->conn, skb);
 
+       if (!skb)
+               return;
+
        lowpan_cb(skb)->status = -EAGAIN;
 }
 
@@ -959,6 +962,9 @@ static void chan_resume_cb(struct l2cap_chan *chan)
 
        BT_DBG("chan %p conn %p skb %p", chan, chan->conn, skb);
 
+       if (!skb)
+               return;
+
        lowpan_cb(skb)->status = 0;
 }