Bluetooth: Check for valid bdaddr in add_remote_oob_data

Before doing any other verifications, the add_remote_oob_data function
should first check that the given address is valid. This patch adds such
a missing check to the beginning of the function.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
Johan Hedberg 2015-01-23 10:10:38 +02:00 коммит произвёл Marcel Holtmann
Родитель ed93ec69c7
Коммит 5d57e7964c
1 изменённых файлов: 6 добавлений и 0 удалений

Просмотреть файл

@ -3633,10 +3633,16 @@ unlock:
static int add_remote_oob_data(struct sock *sk, struct hci_dev *hdev, static int add_remote_oob_data(struct sock *sk, struct hci_dev *hdev,
void *data, u16 len) void *data, u16 len)
{ {
struct mgmt_addr_info *addr = data;
int err; int err;
BT_DBG("%s ", hdev->name); BT_DBG("%s ", hdev->name);
if (!bdaddr_type_is_valid(addr->type))
return cmd_complete(sk, hdev->id, MGMT_OP_ADD_REMOTE_OOB_DATA,
MGMT_STATUS_INVALID_PARAMS, addr,
sizeof(*addr));
hci_dev_lock(hdev); hci_dev_lock(hdev);
if (len == MGMT_ADD_REMOTE_OOB_DATA_SIZE) { if (len == MGMT_ADD_REMOTE_OOB_DATA_SIZE) {