Re: [PATCH] ocfs2: replace deprecated simple_strtol with kstrtol
From: Joseph Qi
Date: Thu Nov 14 2024 - 20:05:42 EST
On 11/13/24 4:09 PM, Daniel Yang wrote:
> The function simple_strtol ignores overflows and has an awkward
> interface for error checking. Replace with the recommended kstrtol
> function leads to clearer error checking and safer conversions.
>
> Signed-off-by: Daniel Yang <danielyangkang@xxxxxxxxx>
> ---
> fs/ocfs2/cluster/heartbeat.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c
> index 4b9f45d70..dff18efbc 100644
> --- a/fs/ocfs2/cluster/heartbeat.c
> +++ b/fs/ocfs2/cluster/heartbeat.c
> @@ -3,6 +3,7 @@
> * Copyright (C) 2004, 2005 Oracle. All rights reserved.
> */
>
> +#include "linux/kstrtox.h"
> #include <linux/kernel.h>
> #include <linux/sched.h>
> #include <linux/jiffies.h>
> @@ -1777,8 +1778,9 @@ static ssize_t o2hb_region_dev_store(struct config_item *item,
> if (o2nm_this_node() == O2NM_MAX_NODES)
> goto out;
>
> - fd = simple_strtol(p, &p, 0);
> - if (!p || (*p && (*p != '\n')))
> + int p_to_long_ret = kstrtol(p, 0, &fd);
> +
Please define at the beginning.
Seems we can just re-use 'ret'.
BTW, the blank line can be eleminated.
Thanks,
Joseph
> + if (p_to_long_ret < 0)
> goto out;
>
> if (fd < 0 || fd >= INT_MAX)