On Fri,  4 Apr 2025 19:28:48 +0530
Devaansh Kumar <[email protected]> wrote:

> --- a/kernel/trace/trace_stack.c
> +++ b/kernel/trace/trace_stack.c
> @@ -543,8 +543,10 @@ static __init int enable_stacktrace(char *str)
>  {
>       int len;
>  
> -     if ((len = str_has_prefix(str, "_filter=")))
> -             strncpy(stack_trace_filter_buf, str + len, COMMAND_LINE_SIZE);
> +     len = str_has_prefix(str, "_filter=");
> +
> +     if (len)
> +             strscpy(stack_trace_filter_buf, str + len, 
> sizeof(stack_trace_filter_buf));
>  
>       stack_tracer_enabled = 1;
>       return 1;

BTW, why separate out the len? I use this notation quite a bit for
str_has_prefix() checks.

$ git grep '(len = str_has_pref' kernel/trace
kernel/trace/trace_events.c:    if (!(len = str_has_prefix(fmt, "REC->")))
kernel/trace/trace_events_filter.c:     if ((len = str_has_prefix(str + i, 
".ustring"))) {
kernel/trace/trace_events_filter.c:     if ((len = str_has_prefix(str + i, 
".function"))) {
kernel/trace/trace_events_hist.c:       if ((len = str_has_prefix(str, "key=")) 
||
kernel/trace/trace_events_hist.c:           (len = str_has_prefix(str, 
"keys="))) {
kernel/trace/trace_events_hist.c:       } else if ((len = str_has_prefix(str, 
"val=")) ||
kernel/trace/trace_events_hist.c:                  (len = str_has_prefix(str, 
"vals=")) ||
kernel/trace/trace_events_hist.c:                  (len = str_has_prefix(str, 
"values="))) {
kernel/trace/trace_events_hist.c:       } else if ((len = str_has_prefix(str, 
"sort="))) {
kernel/trace/trace_events_hist.c:       } else if ((len = str_has_prefix(str, 
"clock="))) {
kernel/trace/trace_events_hist.c:       } else if ((len = str_has_prefix(str, 
"size="))) {
kernel/trace/trace_events_hist.c:               if ((len = str_has_prefix(str, 
"onmatch(")))
kernel/trace/trace_events_hist.c:               else if ((len = 
str_has_prefix(str, "onmax(")))
kernel/trace/trace_events_hist.c:               else if ((len = 
str_has_prefix(str, "onchange(")))
kernel/trace/trace_stack.c:     if ((len = str_has_prefix(str, "_filter=")))

It's fine being in the if statement as the if is more about "does this have
this prefix" and the length is just a side effect of it to use it to
extract the rest.

This patch is only about removing strncpy(), it doesn't need to modify the
format.

-- Steve

Reply via email to