On Wed, Sep 30, 2026 at 04:52:36PM -0700, Kees Cook wrote:

> Several strlcat() call sites being converted to seq_buf need behavior
> seq_buf doesn't currently provide. The normal seq_buf_init() always
> sets the new buffer size to 0 via seq_buf_clear(). Code migrating from
> strlcat(buf, ...), which appends to whatever buf already contains,
> can't use seq_buf_init() without discarding that existing content. Add
> seq_buf_init_append(), which preserves the existing contents and positions
> the seq_buf to append after it. Add KUnit tests for behavior coverage.
> 
> Tests passed under qemu on ARCH=x86_64 with GCC 16.2.0 and CONFIG_KASAN=y,
> and on big-endian ARCH=s390 with GCC s390x-linux-gnu 16.1.0.

Yep, makes sense!
Reviewed-by: Andy Shevchenko <[email protected]>
But one Q below.

...

> +static inline void
> +seq_buf_init_append(struct seq_buf *s, char *buf, unsigned int size)
> +{
> +     s->buffer = buf;
> +     s->size = size;
> +     s->len = strnlen(buf, size);

Hmm... And if this becomes a size? Shouldn't we set the overflow immediately
if the existing buffer contains a garbage or has non-NUL-terminated content?

> +}

-- 
With Best Regards,
Andy Shevchenko



Reply via email to