]> git.baikalelectronics.ru Git - kernel.git/commit
Bluetooth: Add SMP workaround Microsoft Surface Precision Mouse bug
authorSzymon Janc <szymon.janc@codecoup.pl>
Tue, 18 Jun 2019 22:47:47 +0000 (00:47 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Sat, 6 Jul 2019 13:50:24 +0000 (15:50 +0200)
commit083ce71c068880af0838e642c18c7ce8b9cde9b7
tree5feacabdea1e5021aa795a938bcae5c4fabe45b5
parent44aeb5ded5409cea8c26fc7725c59601d6d58d71
Bluetooth: Add SMP workaround Microsoft Surface Precision Mouse bug

Microsoft Surface Precision Mouse provides bogus identity address when
pairing. It connects with Static Random address but provides Public
Address in SMP Identity Address Information PDU. Address has same
value but type is different. Workaround this by dropping IRK if ID
address discrepancy is detected.

> HCI Event: LE Meta Event (0x3e) plen 19
      LE Connection Complete (0x01)
        Status: Success (0x00)
        Handle: 75
        Role: Master (0x00)
        Peer address type: Random (0x01)
        Peer address: E0:52:33:93:3B:21 (Static)
        Connection interval: 50.00 msec (0x0028)
        Connection latency: 0 (0x0000)
        Supervision timeout: 420 msec (0x002a)
        Master clock accuracy: 0x00

....

> ACL Data RX: Handle 75 flags 0x02 dlen 12
      SMP: Identity Address Information (0x09) len 7
        Address type: Public (0x00)
        Address: E0:52:33:93:3B:21

Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
Tested-by: Maarten Fonville <maarten.fonville@gmail.com>
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=199461
Cc: stable@vger.kernel.org
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/smp.c