Linux bluetooth development
 help / color / mirror / Atom feed
* [PATCH 1/4] Bluetooth: Free up l2cap_chan->sport when initiating a connection
@ 2014-01-28 23:16 johan.hedberg
  2014-01-28 23:16 ` [PATCH 2/4] Bluetooth: Refuse peer L2CAP address reading when not connected johan.hedberg
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: johan.hedberg @ 2014-01-28 23:16 UTC (permalink / raw)
  To: linux-bluetooth

From: Johan Hedberg <johan.hedberg@intel.com>

The sport variable is used to track the allocation of the local PSM
database to ensure no two sockets take the same local PSM. It is
acquired upon bind() but needs to be freed up if the socket ends up
becoming a client one. This patch adds the clearing of the value when
l2cap_chan_connect is called.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
---
 net/bluetooth/l2cap_core.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index d2ef49b54aa2..f583988a4653 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -7126,6 +7126,13 @@ int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid,
 	l2cap_state_change(chan, BT_CONNECT);
 	__set_chan_timer(chan, chan->ops->get_sndtimeo(chan));
 
+	/* Release chan->sport so that it can be reused by other
+	 * sockets (as it's only used for listening sockets).
+	 */
+	write_lock(&chan_list_lock);
+	chan->sport = 0;
+	write_unlock(&chan_list_lock);
+
 	if (hcon->state == BT_CONNECTED) {
 		if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) {
 			__clear_chan_timer(chan);
-- 
1.8.5.3


^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-01-28 23:33 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-28 23:16 [PATCH 1/4] Bluetooth: Free up l2cap_chan->sport when initiating a connection johan.hedberg
2014-01-28 23:16 ` [PATCH 2/4] Bluetooth: Refuse peer L2CAP address reading when not connected johan.hedberg
2014-01-28 23:29   ` Marcel Holtmann
2014-01-28 23:16 ` [PATCH 3/4] Bluetooth: Refuse peer RFCOMM " johan.hedberg
2014-01-28 23:31   ` Marcel Holtmann
2014-01-28 23:16 ` [PATCH 4/4] Bluetooth: Always use l2cap_chan->psm for returning PSM to user space johan.hedberg
2014-01-28 23:33   ` Marcel Holtmann
2014-01-28 23:28 ` [PATCH 1/4] Bluetooth: Free up l2cap_chan->sport when initiating a connection Marcel Holtmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox