diff options
Diffstat (limited to 'net/bluetooth/smp.c')
| -rw-r--r-- | net/bluetooth/smp.c | 12 | 
1 files changed, 4 insertions, 8 deletions
diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c index a2ddae2f37d7..ae91e2d40056 100644 --- a/net/bluetooth/smp.c +++ b/net/bluetooth/smp.c @@ -3315,16 +3315,12 @@ static ssize_t force_bredr_smp_write(struct file *file,  				     size_t count, loff_t *ppos)  {  	struct hci_dev *hdev = file->private_data; -	char buf[32]; -	size_t buf_size = min(count, (sizeof(buf)-1));  	bool enable; +	int err; -	if (copy_from_user(buf, user_buf, buf_size)) -		return -EFAULT; - -	buf[buf_size] = '\0'; -	if (strtobool(buf, &enable)) -		return -EINVAL; +	err = kstrtobool_from_user(user_buf, count, &enable); +	if (err) +		return err;  	if (enable == hci_dev_test_flag(hdev, HCI_FORCE_BREDR_SMP))  		return -EALREADY;  | 
