diff options
-rw-r--r-- | net/bluetooth/hci_sysfs.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c index a978449ab04d..463ffa4fe042 100644 --- a/net/bluetooth/hci_sysfs.c +++ b/net/bluetooth/hci_sysfs.c | |||
@@ -281,11 +281,9 @@ static ssize_t show_idle_timeout(struct device *dev, struct device_attribute *at | |||
281 | static ssize_t store_idle_timeout(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) | 281 | static ssize_t store_idle_timeout(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
282 | { | 282 | { |
283 | struct hci_dev *hdev = dev_get_drvdata(dev); | 283 | struct hci_dev *hdev = dev_get_drvdata(dev); |
284 | char *ptr; | 284 | unsigned long val; |
285 | __u32 val; | ||
286 | 285 | ||
287 | val = simple_strtoul(buf, &ptr, 10); | 286 | if (strict_strtoul(buf, 0, &val) < 0) |
288 | if (ptr == buf) | ||
289 | return -EINVAL; | 287 | return -EINVAL; |
290 | 288 | ||
291 | if (val != 0 && (val < 500 || val > 3600000)) | 289 | if (val != 0 && (val < 500 || val > 3600000)) |
@@ -305,11 +303,9 @@ static ssize_t show_sniff_max_interval(struct device *dev, struct device_attribu | |||
305 | static ssize_t store_sniff_max_interval(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) | 303 | static ssize_t store_sniff_max_interval(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
306 | { | 304 | { |
307 | struct hci_dev *hdev = dev_get_drvdata(dev); | 305 | struct hci_dev *hdev = dev_get_drvdata(dev); |
308 | char *ptr; | 306 | unsigned long val; |
309 | __u16 val; | ||
310 | 307 | ||
311 | val = simple_strtoul(buf, &ptr, 10); | 308 | if (strict_strtoul(buf, 0, &val) < 0) |
312 | if (ptr == buf) | ||
313 | return -EINVAL; | 309 | return -EINVAL; |
314 | 310 | ||
315 | if (val < 0x0002 || val > 0xFFFE || val % 2) | 311 | if (val < 0x0002 || val > 0xFFFE || val % 2) |
@@ -332,11 +328,9 @@ static ssize_t show_sniff_min_interval(struct device *dev, struct device_attribu | |||
332 | static ssize_t store_sniff_min_interval(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) | 328 | static ssize_t store_sniff_min_interval(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
333 | { | 329 | { |
334 | struct hci_dev *hdev = dev_get_drvdata(dev); | 330 | struct hci_dev *hdev = dev_get_drvdata(dev); |
335 | char *ptr; | 331 | unsigned long val; |
336 | __u16 val; | ||
337 | 332 | ||
338 | val = simple_strtoul(buf, &ptr, 10); | 333 | if (strict_strtoul(buf, 0, &val) < 0) |
339 | if (ptr == buf) | ||
340 | return -EINVAL; | 334 | return -EINVAL; |
341 | 335 | ||
342 | if (val < 0x0002 || val > 0xFFFE || val % 2) | 336 | if (val < 0x0002 || val > 0xFFFE || val % 2) |