summaryrefslogtreecommitdiffstats
path: root/net/bluetooth
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2015-03-14 19:28:01 -0700
committerJohan Hedberg <johan.hedberg@intel.com>2015-03-15 09:57:35 +0200
commitc91041dc4efff71f29f1dd4c9a4a5e80b841395c (patch)
tree0831062d403bbcebf22396637343351b8aa0c107 /net/bluetooth
parentc85be545ea23a4fe590c89683242a9be823394e0 (diff)
downloadop-kernel-dev-c91041dc4efff71f29f1dd4c9a4a5e80b841395c.zip
op-kernel-dev-c91041dc4efff71f29f1dd4c9a4a5e80b841395c.tar.gz
Bluetooth: Add support for untrusted access to management commands
Some management commands are safe to be accessed from any user without special permissions. First step for allowing access to any of these commands from untrusted application is to mark them accordingly. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Diffstat (limited to 'net/bluetooth')
-rw-r--r--net/bluetooth/mgmt.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index 1e5afa7..09f31f9 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -6251,12 +6251,16 @@ unlock:
static const struct hci_mgmt_handler mgmt_handlers[] = {
{ NULL }, /* 0x0000 (no command) */
{ read_version, MGMT_READ_VERSION_SIZE,
- HCI_MGMT_NO_HDEV },
+ HCI_MGMT_NO_HDEV |
+ HCI_MGMT_UNTRUSTED },
{ read_commands, MGMT_READ_COMMANDS_SIZE,
- HCI_MGMT_NO_HDEV },
+ HCI_MGMT_NO_HDEV |
+ HCI_MGMT_UNTRUSTED },
{ read_index_list, MGMT_READ_INDEX_LIST_SIZE,
- HCI_MGMT_NO_HDEV },
- { read_controller_info, MGMT_READ_INFO_SIZE, 0 },
+ HCI_MGMT_NO_HDEV |
+ HCI_MGMT_UNTRUSTED },
+ { read_controller_info, MGMT_READ_INFO_SIZE,
+ HCI_MGMT_UNTRUSTED },
{ set_powered, MGMT_SETTING_SIZE, 0 },
{ set_discoverable, MGMT_SET_DISCOVERABLE_SIZE, 0 },
{ set_connectable, MGMT_SETTING_SIZE, 0 },
@@ -6312,9 +6316,11 @@ static const struct hci_mgmt_handler mgmt_handlers[] = {
{ load_conn_param, MGMT_LOAD_CONN_PARAM_SIZE,
HCI_MGMT_VAR_LEN },
{ read_unconf_index_list, MGMT_READ_UNCONF_INDEX_LIST_SIZE,
- HCI_MGMT_NO_HDEV },
+ HCI_MGMT_NO_HDEV |
+ HCI_MGMT_UNTRUSTED },
{ read_config_info, MGMT_READ_CONFIG_INFO_SIZE,
- HCI_MGMT_UNCONFIGURED },
+ HCI_MGMT_UNCONFIGURED |
+ HCI_MGMT_UNTRUSTED },
{ set_external_config, MGMT_SET_EXTERNAL_CONFIG_SIZE,
HCI_MGMT_UNCONFIGURED },
{ set_public_address, MGMT_SET_PUBLIC_ADDRESS_SIZE,
@@ -6323,7 +6329,8 @@ static const struct hci_mgmt_handler mgmt_handlers[] = {
HCI_MGMT_VAR_LEN },
{ NULL },
{ read_ext_index_list, MGMT_READ_EXT_INDEX_LIST_SIZE,
- HCI_MGMT_NO_HDEV },
+ HCI_MGMT_NO_HDEV |
+ HCI_MGMT_UNTRUSTED },
};
int mgmt_control(struct hci_mgmt_chan *chan, struct sock *sk,
OpenPOWER on IntegriCloud