RE: [PATCH] Bluetooth: Revert: Fix L2CAP connection establishment

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ilia

>From: Ilia, Kolominsky [mailto:iliak@xxxxxx]
>Sent: Tuesday, November 01, 2011 9:58 AM
>To: Lichwa Arkadiusz; linux-bluetooth@xxxxxxxxxxxxxxx
>Cc: ulrik.lauren@xxxxxxxxxxxxxx
>Subject: RE: [PATCH] Bluetooth: Revert: Fix L2CAP connection establishment
>
>Hi
>
>> -----Original Message-----
>> From: Arkadiusz.Lichwa@xxxxxxxxx [mailto:Arkadiusz.Lichwa@xxxxxxxxx]
>> Sent: Monday, October 31, 2011 6:00 PM
>> To: linux-bluetooth@xxxxxxxxxxxxxxx
>> Cc: Ilia, Kolominsky; ulrik.lauren@xxxxxxxxxxxxxx;
>> Arkadiusz.Lichwa@xxxxxxxxx
>> Subject: RE: [PATCH] Bluetooth: Revert: Fix L2CAP connection
>> establishment
>>
>> Hi
>>
>> >Subject: [PATCH] Bluetooth: Revert: Fix L2CAP connection establishment
>> >
>> >This reverts commit 330605423ca6eafafb8dcc27502bce1c585d1b06.
>> >The commit introduces regression when two 2.1 devices attempt
>> >establish rfcomm channel. Such connection is refused since there's
>> >a security block issue on l2cap. It means the link is unencrypted.
>> >
>> >2011-09-16 18:08:46.567616 < ACL data: handle 1 flags 0x00 dlen 24
>> >    0000: 14 00 40 00 06 00 02 00  0f 35 03 19 12 00 ff ff
>> >..@......5....˙˙
>> >    0010: 35 05 0a 00 00 ff ff 00                           5....˙˙.
>> >2011-09-16 18:08:46.572377 > HCI Event: Number of Completed Packets
>> >(0x13) plen 5
>> >    handle 1 packets 1
>> >2011-09-16 18:08:46.577931 > ACL data: handle 1 flags 0x02 dlen 88
>> >    L2CAP(d): cid 0x0040 len 84 [psm 0]
>> >      0000: 07 00 02 00 4f 00 4c 35  4a 35 48 09 00 00 0a 00
>> >....O.L5J5H.....
>> >      0010: 01 00 00 09 00 01 35 03  19 12 00 09 00 05 35 03
>> >......5.......5.
>> >      0020: 19 10 02 09 00 09 35 08  35 06 19 12 00 09 01 02
>> >......5.5.......
>> >      0030: 09 02 00 09 01 02 09 02  01 09 00 0a 09 02 02 09
>> >................
>> >      0040: 00 00 09 02 03 09 00 00  09 02 04 28 01 09 02 05
>> >...........(....
>> >      0050: 09 00 02 00                                       ....
>> >2011-09-16 18:08:46.626057 < HCI Command: Authentication Requested
>> >(0x01|0x0011) plen 2
>> >    handle 1
>> >2011-09-16 18:08:46.627614 > HCI Event: Command Status (0x0f) plen 4
>> >    Authentication Requested (0x01|0x0011) status 0x00 ncmd 1
>> >2011-09-16 18:08:46.627675 > HCI Event: Link Key Request (0x17) plen 6
>> >    bdaddr 00:00:F2:6A:29:69
>> >2011-09-16 18:08:46.634999 < HCI Command: Link Key Request Reply
>> >(0x01|0x000b) plen 22
>> >    bdaddr 00:00:F2:6A:29:69 key 58CD393179FC902E5E8F512A855EE532
>> >2011-09-16 18:08:46.683278 > HCI Event: Command Complete (0x0e) plen
>> 10
>> >    Link Key Request Reply (0x01|0x000b) ncmd 1
>> >    status 0x00 bdaddr 00:00:F2:6A:29:69
>> >2011-09-16 18:08:46.764729 > HCI Event: Auth Complete (0x06) plen 3
>> >    status 0x00 handle 1
>> >2011-09-16 18:08:46.764821 < ACL data: handle 1 flags 0x00 dlen 12
>> >    0000: 08 00 01 00 02 05 04 00  03 00 41 00
>> ..........A.
>> >2011-09-16 18:08:46.764851 > HCI Event: Command Status (0x0f) plen 4
>> >    Unknown (0x00|0x0000) status 0x00 ncmd 2
>> >2011-09-16 18:08:46.768117 > HCI Event: Number of Completed Packets
>> >(0x13) plen 5
>> >    handle 1 packets 1
>> >2011-09-16 18:08:46.770894 > ACL data: handle 1 flags 0x02 dlen 16
>> >    L2CAP(s): Connect rsp: dcid 0x0000 scid 0x0041 result 3 status 0
>> >      Connection refused - security block
>> >2011-09-16 18:08:49.000691 < ACL data: handle 1 flags 0x00 dlen 12
>> >    0000: 08 00 01 00 06 06 04 00  40 00 40 00
>> ........@.@.
>> >2011-09-16 18:08:49.015675 > HCI Event: Number of Completed Packets
>> >(0x13) plen 5
>> >    handle 1 packets 1
>> >2011-09-16 18:08:49.016927 > ACL data: handle 1 flags 0x02 dlen 12
>> >    L2CAP(s): Disconn rsp: dcid 0x0040 scid 0x0040
>> >2011-09-16 18:08:51.009480 < HCI Command: Disconnect (0x01|0x0006)
>> plen
>> >3
>> >    handle 1 reason 0x13
>> >    Reason: Remote User Terminated Connection
>> >2011-09-16 18:08:51.011525 > HCI Event: Command Status (0x0f) plen 4
>> >    Disconnect (0x01|0x0006) status 0x00 ncmd 1
>> >2011-09-16 18:08:51.123494 > HCI Event: Disconn Complete (0x05) plen 4
>> >    status 0x00 handle 1 reason 0x16
>> >    Reason: Connection Terminated by Local Host
>> >
>> >Signed-off-by: Arek Lichwa <arkadiusz.lichwa@xxxxxxxxx>
>> >---
>> > net/bluetooth/hci_conn.c |    2 +-
>> > 1 files changed, 1 insertions(+), 1 deletions(-)
>> >
>> >diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
>> >index c1c597e..e0af723 100644
>> >--- a/net/bluetooth/hci_conn.c
>> >+++ b/net/bluetooth/hci_conn.c
>> >@@ -673,7 +673,7 @@ int hci_conn_security(struct hci_conn *conn, __u8
>> >sec_level, __u8 auth_type)
>> > 		goto encrypt;
>> >
>> > auth:
>> >-	if (test_bit(HCI_CONN_ENCRYPT_PEND, &conn->pend))
>> >+	if (test_and_set_bit(HCI_CONN_ENCRYPT_PEND, &conn->pend))
>> > 		return 0;
>
>Wouldn't that bit set in hci_conn_encrypt() the first time
>hci_conn_security() is called?

This in this case has never happened. 
First time the flow jumps to "auth" label in hci_conn_security(). 
On auth_complete_evt the flow overpasses the encryption part since 
the conn->state is not BT_CONFIG and pending HCI_CONN_ENCRYPT_PEND is never set. Rfcomm's l2cap is set in motion afterwards.

The question is why you acctually have changed the code? 
Isn't it to be related to too early l2cap timer expirations? ...which was also part of some regression that has been fixed in bluetooth-next now
The old code was quite stable, for so pretty long time noone observed regression in this area. Am I wrong ?

/Arek
>
>> >
>> > 	if (!hci_conn_auth(conn, sec_level, auth_type))
>> >--
>> >1.7.6
>>
>> Is it something unclear in my original post ? Any comments ?
>> Regression here is quite obvious in my opinion.
>>
>> /Arek

--
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


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux