[PATCH 1/2] work around for l2cap NULL dereference in l2cap_conn_start print sk

From: David Fries
Date: Sun Feb 06 2011 - 15:34:49 EST


---
net/bluetooth/l2cap.c | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index fda7741..ff05f51 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -400,7 +400,16 @@ static void l2cap_conn_start(struct l2cap_conn *conn)
struct sock *parent = bt_sk(sk)->parent;
rsp.result = cpu_to_le16(L2CAP_CR_PEND);
rsp.status = cpu_to_le16(L2CAP_CS_AUTHOR_PEND);
- parent->sk_data_ready(parent, 0);
+ if(!parent) {
+ printk(KERN_DEBUG "avoided "
+ "crash in %s sk %p "
+ "result %d status %d\n",
+ __func__, sk,
+ rsp.result, rsp.status);
+ } else {
+ parent->sk_data_ready(parent,
+ 0);
+ }

} else {
sk->sk_state = BT_CONFIG;
--
1.7.2.3