brcm2708: organize kernel patches
[openwrt/staging/dedeckeh.git] / target / linux / brcm2708 / patches-4.19 / 950-0451-Bluetooth-Check-key-sizes-only-when-Secure-Simple-Pa.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0451-Bluetooth-Check-key-sizes-only-when-Secure-Simple-Pa.patch b/target/linux/brcm2708/patches-4.19/950-0451-Bluetooth-Check-key-sizes-only-when-Secure-Simple-Pa.patch
new file mode 100644 (file)
index 0000000..28c7450
--- /dev/null
@@ -0,0 +1,39 @@
+From 83f0a8986ae42e33bc16acda0451dce2cf4dfb55 Mon Sep 17 00:00:00 2001
+From: Marcel Holtmann <marcel@holtmann.org>
+Date: Wed, 22 May 2019 09:05:40 +0200
+Subject: [PATCH] Bluetooth: Check key sizes only when Secure Simple
+ Pairing is enabled
+
+The encryption is only mandatory to be enforced when both sides are using
+Secure Simple Pairing and this means the key size check makes only sense
+in that case.
+
+On legacy Bluetooth 2.0 and earlier devices like mice the encryption was
+optional and thus causing an issue if the key size check is not bound to
+using Secure Simple Pairing.
+
+Fixes: d5bb334a8e17 ("Bluetooth: Align minimum encryption key size for LE and BR/EDR connections")
+Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
+Cc: stable@vger.kernel.org
+---
+ net/bluetooth/hci_conn.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+--- a/net/bluetooth/hci_conn.c
++++ b/net/bluetooth/hci_conn.c
+@@ -1272,8 +1272,13 @@ int hci_conn_check_link_mode(struct hci_
+                       return 0;
+       }
+-      if (hci_conn_ssp_enabled(conn) &&
+-          !test_bit(HCI_CONN_ENCRYPT, &conn->flags))
++      /* If Secure Simple Pairing is not enabled, then legacy connection
++       * setup is used and no encryption or key sizes can be enforced.
++       */
++      if (!hci_conn_ssp_enabled(conn))
++              return 1;
++
++      if (!test_bit(HCI_CONN_ENCRYPT, &conn->flags))
+               return 0;
+       return 1;