[PATCH] set_cmdline: replace fragile/deprecated strncpy with strscpy

Daniel Yang posted 1 patch 2 weeks, 5 days ago
kernel/trace/trace_sched_switch.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] set_cmdline: replace fragile/deprecated strncpy with strscpy
Posted by Daniel Yang 2 weeks, 5 days ago
Kernel docs identify strncpy as being fragile and ambiguous. Replaced
strncpy with strscpy so dest str is null terminated and not padded.

Signed-off-by: Daniel Yang <danielyangkang@gmail.com>
---
 kernel/trace/trace_sched_switch.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/trace/trace_sched_switch.c b/kernel/trace/trace_sched_switch.c
index 8a407adb0..573b5d8e8 100644
--- a/kernel/trace/trace_sched_switch.c
+++ b/kernel/trace/trace_sched_switch.c
@@ -187,7 +187,7 @@ static inline char *get_saved_cmdlines(int idx)
 
 static inline void set_cmdline(int idx, const char *cmdline)
 {
-	strncpy(get_saved_cmdlines(idx), cmdline, TASK_COMM_LEN);
+	strscpy(get_saved_cmdlines(idx), cmdline, TASK_COMM_LEN);
 }
 
 static void free_saved_cmdlines_buffer(struct saved_cmdlines_buffer *s)
-- 
2.39.2
Re: [PATCH] set_cmdline: replace fragile/deprecated strncpy with strscpy
Posted by Steven Rostedt 1 week, 4 days ago
On Mon,  4 Nov 2024 23:20:07 -0800
Daniel Yang <danielyangkang@gmail.com> wrote:

> Kernel docs identify strncpy as being fragile and ambiguous. Replaced
> strncpy with strscpy so dest str is null terminated and not padded.
> 

Already been updated:

https://lore.kernel.org/linux-trace-kernel/20241031120139.1343025-1-ruanjinjie@huawei.com/

-- Steve

> Signed-off-by: Daniel Yang <danielyangkang@gmail.com>
> ---
>  kernel/trace/trace_sched_switch.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/trace/trace_sched_switch.c b/kernel/trace/trace_sched_switch.c
> index 8a407adb0..573b5d8e8 100644
> --- a/kernel/trace/trace_sched_switch.c
> +++ b/kernel/trace/trace_sched_switch.c
> @@ -187,7 +187,7 @@ static inline char *get_saved_cmdlines(int idx)
>  
>  static inline void set_cmdline(int idx, const char *cmdline)
>  {
> -	strncpy(get_saved_cmdlines(idx), cmdline, TASK_COMM_LEN);
> +	strscpy(get_saved_cmdlines(idx), cmdline, TASK_COMM_LEN);
>  }
>  
>  static void free_saved_cmdlines_buffer(struct saved_cmdlines_buffer *s)