diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2013-10-10 18:06:04 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2013-10-10 09:13:45 -0700 |
commit | cebf4cfd8608cbcc941750801217988f0a8fc848 (patch) | |
tree | 0c17800a5da36569359f419278087ab79e9ce42d /net | |
parent | c4e5bafa661126b7b42459ad32d4c2cc589ef8fb (diff) | |
download | linux-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.c | 3 |
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; |