[lvc-project] [PATCH] rcu-tasks: Update show_rcu_tasks_trace_gp_kthread buffer size
Steven Rostedt
rostedt at goodmis.org
Tue Mar 26 23:28:38 MSK 2024
On Tue, 26 Mar 2024 22:55:29 +0300
Nikita Kiryushin <kiryushin at ancud.ru> wrote:
> 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?
Because it's on the stack, which will likely reserve data in word size.
Thus, buf[87] reserves as much data on the stack as buf[88].
> > 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.
It's because it's on the stack, but it's always good to align. For
instance, kmalloc() will allocate things in 32 byte chunks.
-- Steve
More information about the lvc-project
mailing list