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!