Hi Andrei,
--------------------------------------------------
From: "Andrei Emeltchenko" <andrei.emeltchenko.news@xxxxxxxxx>
Sent: Thursday, July 19, 2012 1:22 PM
To: "Jaganath Kanakkassery" <jaganath.k@xxxxxxxxxxx>
Cc: <linux-bluetooth@xxxxxxxxxxxxxxx>
Subject: Re: [PATCH] Bluetooth: Fix socket not getting freed if l2cap
channel create fails
Hi Jaganath,
On Thu, Jul 19, 2012 at 12:54:04PM +0530, Jaganath Kanakkassery wrote:
If l2cap_chan_create() fails then it will return from l2cap_sock_kill
since zapped flag of sk is reset.
Signed-off-by: Jaganath Kanakkassery <jaganath.k@xxxxxxxxxxx>
---
net/bluetooth/l2cap_sock.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index 79350d1..419857d 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -1174,7 +1174,7 @@ static struct sock *l2cap_sock_alloc(struct net
*net, struct socket *sock, int p
chan = l2cap_chan_create();
if (!chan) {
- l2cap_sock_kill(sk);
+ sk_free(sk);
Could you consider using sock_put which will call sk_free,
maybe we need to add also sock_orphan?
Ok, Actually I used sk_free since there is not refcount increase at this
point
and also I found the same code in rfcomm_sock_alloc().
So should I fix it in RFCOMM also?
Thanks,
Jaganath
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html