Re: [PATCH] rcu-tasks: Update show_rcu_tasks_trace_gp_kthread buffer size

From: Nikita Kiryushin
Date: Tue Mar 26 2024 - 16:09:45 EST




On 3/26/24 22:22, Steven Rostedt wrote:
Why 87? as it's not even word size, and this is on the stack.

Got 87 as maximal used buffer length (result of
sprintf(buf, "N%lu h:%lu/%lu/%lu",
        (unsigned long int) -1,
        (unsigned long int) -1,
        (unsigned long int) -1,
        (unsigned long int) -1);
+1 for terminator.

Is word-size alignment a thing in this case? I thought that char buffers
are ok to be aligned by 1?
Better yet, why not just use snprintf()?

Seems like a better idea indeed, as if fixes overflows for unpractical cases,
without added overhead to common cases. The only concern is possible truncation
of data, that may break some automation (if output is parsed by someone,
without accounting on it being cut, who knows). But again, it is for pretty unpractical
values.

Will make a v2 patch with snprintf() with buffer length.

Genuinely look forward to being educated about aspects of aligning array sizes, as
I do not really understand the limitations.

Thanks!