summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2013-10-10 18:06:04 +0200
committerMarcel Holtmann <marcel@holtmann.org>2013-10-10 09:13:45 -0700
commitcebf4cfd8608cbcc941750801217988f0a8fc848 (patch)
tree0c17800a5da36569359f419278087ab79e9ce42d /net
parentc4e5bafa661126b7b42459ad32d4c2cc589ef8fb (diff)
downloadlinux-cebf4cfd8608cbcc941750801217988f0a8fc848.tar.gz
linux-cebf4cfd8608cbcc941750801217988f0a8fc848.tar.bz2
linux-cebf4cfd8608cbcc941750801217988f0a8fc848.zip
Bluetooth: Fix checking for HCI_SETUP flag when receiving mgmt commands
When the HCI_SETUP flag is set the controller has not yet been announced over mgmt and therefore doesn't exist from that perspective. If we nevertheless get a mgmt command for it we should respond with the appropriate INVALID_INDEX error. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net')
-rw-r--r--net/bluetooth/mgmt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index e7ffd39100a0..7d25d6dcd79d 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -3753,7 +3753,8 @@ int mgmt_control(struct sock *sk, struct msghdr *msg, size_t msglen)
goto done;
}
- if (test_bit(HCI_USER_CHANNEL, &hdev->dev_flags)) {
+ if (test_bit(HCI_SETUP, &hdev->dev_flags) ||
+ test_bit(HCI_USER_CHANNEL, &hdev->dev_flags)) {
err = cmd_status(sk, index, opcode,
MGMT_STATUS_INVALID_INDEX);
goto done;