[PATCH] firmware_loader: Replace simple_strtol() with kstrtoint()

Haoyang Liu posted 1 patch 1 week, 3 days ago
drivers/base/firmware_loader/sysfs.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
[PATCH] firmware_loader: Replace simple_strtol() with kstrtoint()
Posted by Haoyang Liu 1 week, 3 days ago
simple_strtol() is obsolete, use kstrtoint() instead.

Signed-off-by: Haoyang Liu <tttturtleruss@hust.edu.cn>
Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
---
 drivers/base/firmware_loader/sysfs.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/base/firmware_loader/sysfs.c b/drivers/base/firmware_loader/sysfs.c
index c9c93b47d9a5..4de1cb243bee 100644
--- a/drivers/base/firmware_loader/sysfs.c
+++ b/drivers/base/firmware_loader/sysfs.c
@@ -47,8 +47,12 @@ static ssize_t timeout_show(const struct class *class, const struct class_attrib
 static ssize_t timeout_store(const struct class *class, const struct class_attribute *attr,
 			     const char *buf, size_t count)
 {
-	int tmp_loading_timeout = simple_strtol(buf, NULL, 10);
+	int tmp_loading_timeout;
+	int res;
 
+	res = kstrtoint(buf, 10, &tmp_loading_timeout);
+	if (res < 0)
+		return res;
 	if (tmp_loading_timeout < 0)
 		tmp_loading_timeout = 0;
 
@@ -157,8 +161,12 @@ static ssize_t firmware_loading_store(struct device *dev,
 	struct fw_sysfs *fw_sysfs = to_fw_sysfs(dev);
 	struct fw_priv *fw_priv;
 	ssize_t written = count;
-	int loading = simple_strtol(buf, NULL, 10);
+	int loading;
+	int res;
 
+	res = kstrtoint(buf, 10, &loading);
+	if (res < 0)
+		return res;
 	mutex_lock(&fw_lock);
 	fw_priv = fw_sysfs->fw_priv;
 	if (fw_state_is_aborted(fw_priv) || fw_state_is_done(fw_priv))
-- 
2.25.1
Re: [PATCH] firmware_loader: Replace simple_strtol() with kstrtoint()
Posted by Andy Shevchenko 2 days, 12 hours ago
Sat, Apr 27, 2024 at 04:25:32AM +0800, Haoyang Liu kirjoitti:
> simple_strtol() is obsolete, use kstrtoint() instead.

It's not, but kstrtox() is preferred.

...


While I'm in support of this move, this might break userspace by making
stricter requirement on the input.

So this is just informative message.

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH] firmware_loader: Replace simple_strtol() with kstrtoint()
Posted by Greg Kroah-Hartman 1 day, 23 hours ago
On Sat, May 04, 2024 at 09:22:08PM +0300, Andy Shevchenko wrote:
> Sat, Apr 27, 2024 at 04:25:32AM +0800, Haoyang Liu kirjoitti:
> > simple_strtol() is obsolete, use kstrtoint() instead.
> 
> It's not, but kstrtox() is preferred.
> 
> ...
> 
> 
> While I'm in support of this move, this might break userspace by making
> stricter requirement on the input.

Good point, I've dropped this so that others can test it better first.

thanks,

greg k-h
Re: [PATCH] firmware_loader: Replace simple_strtol() with kstrtoint()
Posted by Russ Weight 1 week ago
On Sat, Apr 27, 2024 at 04:25:32AM +0800, Haoyang Liu wrote:
> simple_strtol() is obsolete, use kstrtoint() instead.
> 
> Signed-off-by: Haoyang Liu <tttturtleruss@hust.edu.cn>
> Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>

Reviewed-by: Russ Weight <russ.weight@linux.dev>

> ---
>  drivers/base/firmware_loader/sysfs.c | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/base/firmware_loader/sysfs.c b/drivers/base/firmware_loader/sysfs.c
> index c9c93b47d9a5..4de1cb243bee 100644
> --- a/drivers/base/firmware_loader/sysfs.c
> +++ b/drivers/base/firmware_loader/sysfs.c
> @@ -47,8 +47,12 @@ static ssize_t timeout_show(const struct class *class, const struct class_attrib
>  static ssize_t timeout_store(const struct class *class, const struct class_attribute *attr,
>  			     const char *buf, size_t count)
>  {
> -	int tmp_loading_timeout = simple_strtol(buf, NULL, 10);
> +	int tmp_loading_timeout;
> +	int res;
>  
> +	res = kstrtoint(buf, 10, &tmp_loading_timeout);
> +	if (res < 0)
> +		return res;
>  	if (tmp_loading_timeout < 0)
>  		tmp_loading_timeout = 0;
>  
> @@ -157,8 +161,12 @@ static ssize_t firmware_loading_store(struct device *dev,
>  	struct fw_sysfs *fw_sysfs = to_fw_sysfs(dev);
>  	struct fw_priv *fw_priv;
>  	ssize_t written = count;
> -	int loading = simple_strtol(buf, NULL, 10);
> +	int loading;
> +	int res;
>  
> +	res = kstrtoint(buf, 10, &loading);
> +	if (res < 0)
> +		return res;
>  	mutex_lock(&fw_lock);
>  	fw_priv = fw_sysfs->fw_priv;
>  	if (fw_state_is_aborted(fw_priv) || fw_state_is_done(fw_priv))
> -- 
> 2.25.1
>