diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2014-07-04 18:54:40 +0400 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2014-07-04 19:09:37 +0400 |
commit | 42a9bc148960b2c85f9ec5ef1abe3a87e0155c60 (patch) | |
tree | a4dce68d33fbabe0aa2099ba8863ff8ba05ad9f9 /net/bluetooth/mgmt.c | |
parent | 849e5086b9080d2408fd6223d27548032083b9e8 (diff) | |
download | linux-42a9bc148960b2c85f9ec5ef1abe3a87e0155c60.tar.xz |
Bluetooth: Allow reading configuration info when unconfigured
Reading the controller configuration information is a valid management
command when the controller is unconfigured. Allow this command, but
return invalid index on all other commands.
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Diffstat (limited to 'net/bluetooth/mgmt.c')
-rw-r--r-- | net/bluetooth/mgmt.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index c7e5d4651021..766411e11ac7 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c @@ -5455,12 +5455,18 @@ int mgmt_control(struct sock *sk, struct msghdr *msg, size_t msglen) } if (test_bit(HCI_SETUP, &hdev->dev_flags) || - test_bit(HCI_UNCONFIGURED, &hdev->dev_flags) || test_bit(HCI_USER_CHANNEL, &hdev->dev_flags)) { err = cmd_status(sk, index, opcode, MGMT_STATUS_INVALID_INDEX); goto done; } + + if (test_bit(HCI_UNCONFIGURED, &hdev->dev_flags) && + opcode != MGMT_OP_READ_CONFIG_INFO) { + err = cmd_status(sk, index, opcode, + MGMT_STATUS_INVALID_INDEX); + goto done; + } } if (opcode >= ARRAY_SIZE(mgmt_handlers) || |