Re: [PATCH v2 0/6] vsprintf: Add __printf attribute to where it's required

From: Kees Cook
Date: Tue Mar 25 2025 - 15:38:49 EST


On Fri, Mar 21, 2025 at 04:40:46PM +0200, Andy Shevchenko wrote:
> This whole series started from a simple fix (see the last patch)
> to make GCC (Debian 14.2.0-17) happy when compiling with `make W=1`
> (note, that CONFIG_WERROR=y and all warnings break the build!)
> down to a rabbit hole.
>
> However starting from v2 the last patch doesn't require the first
> part, I prefer still to have them since the functions, while being
> _binary_ printf()-like, are still printf()-like. It also puts in align
> the tracing stuff with the rest and fixes the wrong parameter value.
>
> These first 4 patches are organised in a strict order and can't be
> reshuffled, otherwise it will produce a warnings in between.
>
> I believe the best route for the series is printk tree with immutable
> tag or branch for the others.
>
> Alternatively the first 4 patches can be applied first as they
> are pretty much straightforward. They also can be squashed to one
> (as the same topic behind), but it all is up to the respective
> maintainers.
>
> In v2:
> - split out patch 5 (Rasmus)
> - rewritten the approach for the va_format() fix (Rasmus)
> - amended tracing patch (removed a blank line and a __printf() in C file)
>
> Andy Shevchenko (6):
> seq_buf: Mark binary printing functions with __printf() attribute
> seq_file: Mark binary printing functions with __printf() attribute
> tracing: Mark binary printing functions with __printf() attribute
> vsnprintf: Mark binary printing functions with __printf() attribute
> vsnprintf: Drop unused const char fmt * in va_format()
> vsnprintf: Silence false positive GCC warning for va_format()
>
> include/linux/seq_buf.h | 4 ++--
> include/linux/seq_file.h | 1 +
> include/linux/string.h | 4 ++--
> include/linux/trace.h | 4 ++--
> include/linux/trace_seq.h | 8 ++++----
> kernel/trace/trace.c | 11 +++--------
> kernel/trace/trace.h | 16 +++++++++-------
> lib/vsprintf.c | 9 +++++++--
> 8 files changed, 30 insertions(+), 27 deletions(-)

Cool; it'll be nice to get these marked up.

Reviewed-by: Kees Cook <kees@xxxxxxxxxx>

--
Kees Cook