From: "Gustavo F. Padovan" <padovan@profusion.mobi>
To: linux-bluetooth@vger.kernel.org
Cc: jprvita@profusion.mobi, gustavo@padovan.org, marcel@holtmann.org
Subject: [PATCH 10/13] Bluetooth: Fix crash when sending frames after connection is closed
Date: Mon, 31 May 2010 14:02:49 -0300 [thread overview]
Message-ID: <1275325372-5671-10-git-send-email-padovan@profusion.mobi> (raw)
In-Reply-To: <1275325372-5671-9-git-send-email-padovan@profusion.mobi>
At the time the channel is closed we can't really know if the timer
was really deleted, since we used del_timer(). We can't call
del_timer_sync() in interrupt context! So sometimes the acktimeout
expires and try to send a acknowledgement, but we don't have any
connection anymore.
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Reviewed-by: João Paulo Rechi Vita <jprvita@profusion.mobi>
---
net/bluetooth/l2cap.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index 3db0078..e5b766d 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -345,8 +345,12 @@ static inline void l2cap_send_sframe(struct l2cap_pinfo *pi, u16 control)
struct sk_buff *skb;
struct l2cap_hdr *lh;
struct l2cap_conn *conn = pi->conn;
+ struct sock *sk = (struct sock *)pi;
int count, hlen = L2CAP_HDR_SIZE + 2;
+ if (sk->sk_state != BT_CONNECTED)
+ return;
+
if (pi->fcs == L2CAP_FCS_CRC16)
hlen += 2;
--
1.6.4.4
next prev parent reply other threads:[~2010-05-31 17:02 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-31 17:02 [PATCH 01/13] Bluetooth: Remove max_tx and tx_window modules paramenter from L2CAP Gustavo F. Padovan
2010-05-31 17:02 ` [PATCH 02/13] Bluetooth: Remove L2CAP Extended Features from Kconfig Gustavo F. Padovan
2010-05-31 17:02 ` [PATCH 03/13] Bluetooth: Fix drop of packets with invalid req_seq/tx_seq Gustavo F. Padovan
2010-05-31 17:02 ` [PATCH 04/13] Bluetooth: Check skb_clone return to avoid NULL dereference Gustavo F. Padovan
2010-05-31 17:02 ` [PATCH 05/13] Bluetooth: Fix ERTM vars increment Gustavo F. Padovan
2010-05-31 17:02 ` [PATCH 06/13] Bluetooth: Check packet FCS earlier Gustavo F. Padovan
2010-05-31 17:02 ` [PATCH 07/13] Bluetooth: Only check SAR bits if frame is I-frame Gustavo F. Padovan
2010-05-31 17:02 ` [PATCH 08/13] Bluetooth: Stop ack_timer if ERTM enters in Local Busy or SREJ_SENT Gustavo F. Padovan
2010-05-31 17:02 ` [PATCH 09/13] Bluetooth: Fix ERTM channel shutdown Gustavo F. Padovan
2010-05-31 17:02 ` Gustavo F. Padovan [this message]
2010-05-31 17:02 ` [PATCH 11/13] Bluetooth: Fix ERTM error reporting to the userspace Gustavo F. Padovan
2010-05-31 17:02 ` [PATCH 12/13] Bluetooth: Fix handle of received P-bit Gustavo F. Padovan
2010-05-31 17:02 ` [PATCH 13/13] Bluetooth: Add debug output to ERTM code Gustavo F. Padovan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1275325372-5671-10-git-send-email-padovan@profusion.mobi \
--to=padovan@profusion.mobi \
--cc=gustavo@padovan.org \
--cc=jprvita@profusion.mobi \
--cc=linux-bluetooth@vger.kernel.org \
--cc=marcel@holtmann.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).