aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/hci_sock.c
diff options
context:
space:
mode:
authorGustavo F. Padovan <padovan@profusion.mobi>2010-12-22 20:00:34 -0500
committerGustavo F. Padovan <padovan@profusion.mobi>2010-12-22 20:00:34 -0500
commit17f9cc3124c97f50a19a7597e5f29f915b5b835c (patch)
treef86d9d088a8ee73e94ff353526064cf58eeaf3eb /net/bluetooth/hci_sock.c
parent23bb57633df97ede067ea26f3cdc8a7ba2cd8109 (diff)
Bluetooth: Improve handling of HCI control channel in bind
Does not allow any channel different of HCI_CHANNEL_RAW and HCI_CHANNEL_CONTROL to bind. Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Diffstat (limited to 'net/bluetooth/hci_sock.c')
-rw-r--r--net/bluetooth/hci_sock.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c
index f6c18abab797..29827c77f6ce 100644
--- a/net/bluetooth/hci_sock.c
+++ b/net/bluetooth/hci_sock.c
@@ -380,7 +380,10 @@ static int hci_sock_bind(struct socket *sock, struct sockaddr *addr, int addr_le
380 if (haddr.hci_family != AF_BLUETOOTH) 380 if (haddr.hci_family != AF_BLUETOOTH)
381 return -EINVAL; 381 return -EINVAL;
382 382
383 if (haddr.hci_channel != HCI_CHANNEL_RAW && !enable_mgmt) 383 if (haddr.hci_channel > HCI_CHANNEL_CONTROL)
384 return -EINVAL;
385
386 if (haddr.hci_channel == HCI_CHANNEL_CONTROL && !enable_mgmt)
384 return -EINVAL; 387 return -EINVAL;
385 388
386 lock_sock(sk); 389 lock_sock(sk);