]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Bluetooth: Fix faulty expression for minimum encryption key size check
authorMatias Karhumaa <matias.karhumaa@gmail.com>
Tue, 2 Jul 2019 14:35:09 +0000 (16:35 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Mon, 23 Sep 2019 20:11:51 +0000 (21:11 +0100)
commit eca94432934fe5f141d084f2e36ee2c0e614cc04 upstream.

Fix minimum encryption key size check so that HCI_MIN_ENC_KEY_SIZE is
also allowed as stated in the comment.

This bug caused connection problems with devices having maximum
encryption key size of 7 octets (56-bit).

Fixes: 693cd8ce3f88 ("Bluetooth: Fix regression with minimum encryption key size alignment")
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203997
Signed-off-by: Matias Karhumaa <matias.karhumaa@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
net/bluetooth/l2cap_core.c

index 3a8b841da2d0b7cc1d02df3526ddc2c5ae5be4a0..79b2d349de999142d6919498066cea87f00a8b2a 100644 (file)
@@ -1272,7 +1272,7 @@ static bool l2cap_check_enc_key_size(struct hci_conn *hcon)
         * actually encrypted before enforcing a key size.
         */
        return (!(hcon->link_mode & HCI_LM_ENCRYPT) ||
-               hcon->enc_key_size > HCI_MIN_ENC_KEY_SIZE);
+               hcon->enc_key_size >= HCI_MIN_ENC_KEY_SIZE);
 }
 
 static void l2cap_do_start(struct l2cap_chan *chan)