From abf8a4688e818729de4cb019ecaa7da39c171b6a Mon Sep 17 00:00:00 2001 From: "Gustavo F. Padovan" Date: Tue, 8 Jun 2010 20:08:49 -0300 Subject: [PATCH] --- yaml --- r: 203853 b: refs/heads/master c: 6c2ea7a8f5fea67fa20e5825401b8fce5a78dbf6 h: refs/heads/master i: 203851: 95546718c6a62b859637b165828a965e6f258475 v: v3 --- [refs] | 2 +- trunk/net/bluetooth/l2cap.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index ec4e32157b3f..08d84822fa13 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 625477523b4e656fbcc5ec2a8ca7a1beb39b1caf +refs/heads/master: 6c2ea7a8f5fea67fa20e5825401b8fce5a78dbf6 diff --git a/trunk/net/bluetooth/l2cap.c b/trunk/net/bluetooth/l2cap.c index ca9bab225777..c5904082392c 100644 --- a/trunk/net/bluetooth/l2cap.c +++ b/trunk/net/bluetooth/l2cap.c @@ -2747,7 +2747,6 @@ static int l2cap_parse_conf_rsp(struct sock *sk, void *rsp, int len, void *data, rfc.mode != pi->mode) return -ECONNREFUSED; - pi->mode = rfc.mode; pi->fcs = 0; l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, @@ -2756,6 +2755,11 @@ static int l2cap_parse_conf_rsp(struct sock *sk, void *rsp, int len, void *data, } } + if (pi->mode == L2CAP_MODE_BASIC && pi->mode != rfc.mode) + return -ECONNREFUSED; + + pi->mode = rfc.mode; + if (*result == L2CAP_CONF_SUCCESS) { switch (rfc.mode) { case L2CAP_MODE_ERTM: