From: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Date: Mon, 29 Sep 2014 07:55:46 +0000 (+0300)
Subject: Bluetooth: 6lowpan: Make sure skb exists before accessing it
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=59790aa2873cb3c32db02c777f08eb19faccf5fa;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git

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>
---

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)
 
 	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;
 }