On Mon, 30 Mar 2026 10:43:22 -0400
Steven Rostedt <[email protected]> wrote:

> diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
> index 9928da636c9d..7754a8adb58a 100644
> --- a/kernel/trace/trace_events.c
> +++ b/kernel/trace/trace_events.c
> @@ -3677,20 +3677,24 @@ static struct boot_triggers {
>  } bootup_triggers[MAX_BOOT_TRIGGERS];
>  
>  static char bootup_trigger_buf[COMMAND_LINE_SIZE];
> +static int boot_trigger_buf_len;
>  static int nr_boot_triggers;
>  
>  static __init int setup_trace_triggers(char *str)
>  {
>       char *trigger;
>       char *buf;
> +     int len = boot_trigger_buf_len;
>       int i;
>  
> -     strscpy(bootup_trigger_buf, str, COMMAND_LINE_SIZE);
> +     strscpy(bootup_trigger_buf + len , str, COMMAND_LINE_SIZE - len);
>       trace_set_ring_buffer_expanded(NULL);
>       disable_tracing_selftest("running event triggers");
>  
> -     buf = bootup_trigger_buf;
> -     for (i = 0; i < MAX_BOOT_TRIGGERS; i++) {
> +     buf = bootup_trigger_buf + len;
> +     boot_trigger_buf_len += strlen(buf);

The above needs to skip the '\0' too:

        boot_trigger_buf_len += strlen(buf) + 1;


> +
> +     for (i = nr_boot_triggers; i < MAX_BOOT_TRIGGERS; i++) {
>               trigger = strsep(&buf, ",");
>               if (!trigger)
>                       break;


Reply via email to