[PATCH 1/3] bluetooth: hidp_connection_add() unsafe use of l2cap_pi()

From: Al Viro
Date: Sun Mar 09 2014 - 13:11:59 EST


it's OK after we'd verified the sockets, but not before that.

Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
---
net/bluetooth/hidp/core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c
index d9fb934..6134618 100644
--- a/net/bluetooth/hidp/core.c
+++ b/net/bluetooth/hidp/core.c
@@ -1332,13 +1332,14 @@ int hidp_connection_add(struct hidp_connadd_req *req,
{
struct hidp_session *session;
struct l2cap_conn *conn;
- struct l2cap_chan *chan = l2cap_pi(ctrl_sock->sk)->chan;
+ struct l2cap_chan *chan;
int ret;

ret = hidp_verify_sockets(ctrl_sock, intr_sock);
if (ret)
return ret;

+ chan = l2cap_pi(ctrl_sock->sk)->chan;
conn = NULL;
l2cap_chan_lock(chan);
if (chan->conn) {
--
1.7.10.4


--2fHTh5uZTiUOsy+g
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="0002-cmtp-cmtp_add_connection-should-verify-that-it-s-dea.patch"