[linux-next] ipmi/watchdog: use strscpy() to instead of strncpy()

Message ID 202212051936400309332@zte.com.cn
State New
Headers
Series [linux-next] ipmi/watchdog: use strscpy() to instead of strncpy() |

Commit Message

Yang Yang Dec. 5, 2022, 11:36 a.m. UTC
  Xu Panda <xu.panda@zte.com.cn>

The implementation of strscpy() is more robust and safer.
That's now the recommended way to copy NUL terminated strings.

Signed-off-by: Xu Panda <xu.panda@zte.com.cn>
Signed-off-by: Yang Yang <yang.yang29@zte.com>
---
 drivers/char/ipmi/ipmi_watchdog.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
  

Comments

Corey Minyard Dec. 5, 2022, 12:58 p.m. UTC | #1
On Mon, Dec 05, 2022 at 07:36:40PM +0800, yang.yang29@zte.com.cn wrote:
> Xu Panda <xu.panda@zte.com.cn>
> 
> The implementation of strscpy() is more robust and safer.
> That's now the recommended way to copy NUL terminated strings.

This looks right.  Applied, thanks.

-corey

> 
> Signed-off-by: Xu Panda <xu.panda@zte.com.cn>
> Signed-off-by: Yang Yang <yang.yang29@zte.com>
> ---
>  drivers/char/ipmi/ipmi_watchdog.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/char/ipmi/ipmi_watchdog.c b/drivers/char/ipmi/ipmi_watchdog.c
> index 47365150e431..0d4a8dcacfd4 100644
> --- a/drivers/char/ipmi/ipmi_watchdog.c
> +++ b/drivers/char/ipmi/ipmi_watchdog.c
> @@ -213,8 +213,7 @@ static int set_param_str(const char *val, const struct kernel_param *kp)
>  	char       valcp[16];
>  	char       *s;
> 
> -	strncpy(valcp, val, 15);
> -	valcp[15] = '\0';
> +	strscpy(valcp, val, 16);
> 
>  	s = strstrip(valcp);
> 
> -- 
> 2.15.2
  

Patch

diff --git a/drivers/char/ipmi/ipmi_watchdog.c b/drivers/char/ipmi/ipmi_watchdog.c
index 47365150e431..0d4a8dcacfd4 100644
--- a/drivers/char/ipmi/ipmi_watchdog.c
+++ b/drivers/char/ipmi/ipmi_watchdog.c
@@ -213,8 +213,7 @@  static int set_param_str(const char *val, const struct kernel_param *kp)
 	char       valcp[16];
 	char       *s;

-	strncpy(valcp, val, 15);
-	valcp[15] = '\0';
+	strscpy(valcp, val, 16);

 	s = strstrip(valcp);