Bluetooth: Add validity checks for adv & scan parameters
Change-Id: I46900e740794f96b91d01bfb6dc3f808881224cf Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This commit is contained in:
parent
784e391bef
commit
40cb272e14
2 changed files with 35 additions and 0 deletions
|
@ -831,6 +831,11 @@ struct bt_conn *bt_conn_create_le(const bt_addr_le_t *peer,
|
|||
{
|
||||
struct bt_conn *conn;
|
||||
|
||||
if (!bt_le_conn_params_valid(param->interval_min, param->interval_max,
|
||||
param->latency, param->timeout)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (atomic_test_bit(bt_dev.flags, BT_DEV_EXPLICIT_SCAN)) {
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -1234,6 +1234,13 @@ int bt_le_set_auto_conn(bt_addr_le_t *addr,
|
|||
{
|
||||
struct bt_conn *conn;
|
||||
|
||||
if (param && !bt_le_conn_params_valid(param->interval_min,
|
||||
param->interval_max,
|
||||
param->latency,
|
||||
param->timeout)) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
conn = bt_conn_lookup_addr_le(addr);
|
||||
if (!conn) {
|
||||
conn = bt_conn_add_le(addr);
|
||||
|
@ -2011,6 +2018,25 @@ int bt_enable(bt_ready_cb_t cb)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static bool valid_adv_param(const struct bt_le_adv_param *param)
|
||||
{
|
||||
switch (param->type) {
|
||||
case BT_LE_ADV_IND:
|
||||
case BT_LE_ADV_SCAN_IND:
|
||||
case BT_LE_ADV_NONCONN_IND:
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
if (param->interval_min > param->interval_max ||
|
||||
param->interval_min < 0x0020 || param->interval_max > 0x4000) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int bt_le_adv_start(const struct bt_le_adv_param *param,
|
||||
const struct bt_eir *ad, const struct bt_eir *sd)
|
||||
{
|
||||
|
@ -2021,6 +2047,10 @@ int bt_le_adv_start(const struct bt_le_adv_param *param,
|
|||
uint8_t adv_enable;
|
||||
int i, err;
|
||||
|
||||
if (!valid_adv_param(param)) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (atomic_test_bit(bt_dev.flags, BT_DEV_ADVERTISING)) {
|
||||
return -EALREADY;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue