|
@@ -5995,6 +5995,10 @@ static int add_advertising(struct sock *sk, struct hci_dev *hdev,
|
|
|
return mgmt_cmd_status(sk, hdev->id, MGMT_OP_ADD_ADVERTISING,
|
|
|
MGMT_STATUS_INVALID_PARAMS);
|
|
|
|
|
|
+ if (data_len != sizeof(*cp) + cp->adv_data_len + cp->scan_rsp_len)
|
|
|
+ return mgmt_cmd_status(sk, hdev->id, MGMT_OP_ADD_ADVERTISING,
|
|
|
+ MGMT_STATUS_INVALID_PARAMS);
|
|
|
+
|
|
|
flags = __le32_to_cpu(cp->flags);
|
|
|
timeout = __le16_to_cpu(cp->timeout);
|
|
|
duration = __le16_to_cpu(cp->duration);
|