misc: tsl2550: replace simple_strtoul to kstrtoul

The function simple_strtoul performs no error checking
in scenarios where the input value overflows the intended
output variable.

We can replace the use of the simple_strtoul with the safer
alternatives kstrtoul.

Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
Link: https://lore.kernel.org/r/20240830080311.3545307-1-lihongbo22@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Hongbo Li 2024-08-30 16:03:11 +08:00 committed by Greg Kroah-Hartman
parent e807c406a6
commit 072e18d63b

View File

@ -185,10 +185,10 @@ static ssize_t tsl2550_store_power_state(struct device *dev,
{ {
struct i2c_client *client = to_i2c_client(dev); struct i2c_client *client = to_i2c_client(dev);
struct tsl2550_data *data = i2c_get_clientdata(client); struct tsl2550_data *data = i2c_get_clientdata(client);
unsigned long val = simple_strtoul(buf, NULL, 10); unsigned long val;
int ret; int ret;
if (val > 1) if (kstrtoul(buf, 10, &val) || val > 1)
return -EINVAL; return -EINVAL;
mutex_lock(&data->update_lock); mutex_lock(&data->update_lock);
@ -217,10 +217,10 @@ static ssize_t tsl2550_store_operating_mode(struct device *dev,
{ {
struct i2c_client *client = to_i2c_client(dev); struct i2c_client *client = to_i2c_client(dev);
struct tsl2550_data *data = i2c_get_clientdata(client); struct tsl2550_data *data = i2c_get_clientdata(client);
unsigned long val = simple_strtoul(buf, NULL, 10); unsigned long val;
int ret; int ret;
if (val > 1) if (kstrtoul(buf, 10, &val) || val > 1)
return -EINVAL; return -EINVAL;
if (data->power_state == 0) if (data->power_state == 0)