Bluetooth: Fix check for connection encryption
authorJohan Hedberg <johan.hedberg@intel.com>
Tue, 10 Jun 2014 06:54:24 +0000 (09:54 +0300)
committerBen Hutchings <ben@decadent.org.uk>
Fri, 11 Jul 2014 12:33:52 +0000 (13:33 +0100)
commitd6b05102d11032e0809dabc7231cbcdb6eba4cdc
treeb5ae91e3872a62acbe4f7bc769957c212ee304a3
parentf7500568b7633324e7c4282bb8baa3ff3f17fd7a
Bluetooth: Fix check for connection encryption

commit e694788d73efe139b24f78b036deb97fe57fa8cb upstream.

The conn->link_key variable tracks the type of link key in use. It is
set whenever we respond to a link key request as well as when we get a
link key notification event.

These two events do not however always guarantee that encryption is
enabled: getting a link key request and responding to it may only mean
that the remote side has requested authentication but not encryption. On
the other hand, the encrypt change event is a certain guarantee that
encryption is enabled. The real encryption state is already tracked in
the conn->link_mode variable through the HCI_LM_ENCRYPT bit.

This patch fixes a check for encryption in the hci_conn_auth function to
use the proper conn->link_mode value and thereby eliminates the chance
of a false positive result.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
net/bluetooth/hci_conn.c