summaryrefslogtreecommitdiffstats
path: root/net/bluetooth/l2cap_sock.c
diff options
context:
space:
mode:
authorJohan Hedberg2014-01-25 23:10:07 +0100
committerJohan Hedberg2014-02-13 08:51:37 +0100
commite0c888ad739513b9baae5c25e85dd6490595e5be (patch)
tree365e2b52b8fb9fa207fe260b71a3b631e294db1f /net/bluetooth/l2cap_sock.c
parentBluetooth: Switch ATT channels to use L2CAP_CHAN_FIXED (diff)
downloadkernel-qcow2-linux-e0c888ad739513b9baae5c25e85dd6490595e5be.tar.gz
kernel-qcow2-linux-e0c888ad739513b9baae5c25e85dd6490595e5be.tar.xz
kernel-qcow2-linux-e0c888ad739513b9baae5c25e85dd6490595e5be.zip
Bluetooth: Fix BT_SECURITY socket option for fixed channels (ATT)
The BT_SECURITY option should also be allowed for fixed channels, so punch the appropriate hole for it when checking for the channel type. The main user of fixed CID user space sockets is right now ATT (which is broken without this patch). Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/l2cap_sock.c')
-rw-r--r--net/bluetooth/l2cap_sock.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index 04abd26a3466..7ad346ea06ed 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -513,6 +513,7 @@ static int l2cap_sock_getsockopt(struct socket *sock, int level, int optname,
switch (optname) {
case BT_SECURITY:
if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED &&
+ chan->chan_type != L2CAP_CHAN_FIXED &&
chan->chan_type != L2CAP_CHAN_RAW) {
err = -EINVAL;
break;
@@ -769,6 +770,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
switch (optname) {
case BT_SECURITY:
if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED &&
+ chan->chan_type != L2CAP_CHAN_FIXED &&
chan->chan_type != L2CAP_CHAN_RAW) {
err = -EINVAL;
break;