From: Kees Cook <kees@kernel.org>
To: Bill Wendling <morbo@google.com>
Cc: "Kees Cook" <kees@kernel.org>, "Jonathan Corbet" <corbet@lwn.net>,
"Andrew Morton" <akpm@linux-foundation.org>,
"David Gow" <david@davidgow.net>,
"Petr Mladek" <pmladek@suse.com>,
"Sergey Senozhatsky" <senozhatsky@chromium.org>,
"Shuvam Pandey" <shuvampandey1@gmail.com>,
"Steven Rostedt" <rostedt@goodmis.org>,
"Günther Noack" <gnoack@google.com>,
"Matthew Wilcox (Oracle)" <willy@infradead.org>,
"Mickaël Salaün" <mic@digikod.net>,
"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
"Masami Hiramatsu" <mhiramat@kernel.org>,
"Mathieu Desnoyers" <mathieu.desnoyers@efficios.com>,
"Ian Bridges" <icb@fastmail.org>,
"Justin Tee" <justin.tee@broadcom.com>,
"Paul Ely" <paul.ely@broadcom.com>,
"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
"Martin K. Petersen" <mkp@kernel.org>,
"Jiri Kosina" <jikos@kernel.org>,
"Alexei Starovoitov" <ast@kernel.org>,
"Daniel Borkmann" <daniel@iogearbox.net>,
"Andrii Nakryiko" <andrii@kernel.org>,
"Eduard Zingerman" <eddyz87@gmail.com>,
"Kumar Kartikeya Dwivedi" <memxor@gmail.com>,
"Martin KaFai Lau" <martin.lau@linux.dev>,
"Song Liu" <song@kernel.org>,
"Yonghong Song" <yonghong.song@linux.dev>,
"Jiri Olsa" <jolsa@kernel.org>,
"Emil Tsalapatis" <emil@etsalapatis.com>,
"Ihor Solodrai" <ihor.solodrai@linux.dev>,
"Christophe Leroy (CS GROUP)" <chleroy@kernel.org>,
"Uwe Kleine-König" <u.kleine-koenig@baylibre.com>,
"Madhavan Srinivasan" <maddy@linux.ibm.com>,
"Michael Ellerman" <mpe@ellerman.id.au>,
"Nicholas Piggin" <npiggin@gmail.com>,
"Shivaprasad G Bhat" <sbhat@linux.ibm.com>,
"Thorsten Blum" <blum@kernel.org>,
"Alison Schofield" <alison.schofield@intel.com>,
"Dave Jiang" <dave.jiang@intel.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Guangshuo Li" <lgs201920130244@gmail.com>,
"Ira Weiny" <iweiny@kernel.org>,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
"Vishal Verma" <vishal.l.verma@intel.com>,
"Randy Dunlap" <rdunlap@infradead.org>,
"Shuah Khan" <skhan@linuxfoundation.org>,
linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org
Subject: [PATCH v5 00/12] seq_buf: Add seq_buf_strlen()
Date: Mon, 5 Oct 2026 08:56:50 -0700 [thread overview]
Message-ID: <20261005155653.late.426-kees@kernel.org> (raw)
Hi,
While working on seq_buf conversions[1], we found there was a need for
seq_buf_strlen() (since calling strlen(seq_buf_str()) would be a waste
of time: seq_buf already knows the length), seq_buf_init_append() (to
start a seq_buf from an existing string buffer), and seq_buf_terminate()
(as there are many callers using seq_buf_str() just for its termination
side-effect). And while implementing that, we found a bunch of other
related things that needed fixing. This is that ever-growing series,
with tests for each fix.
v5:
- add Alexei's Acked-by for the bpf bits (07/12, 08/12)
- 03/12: new: lpfc_rx_monitor_report() drops a record that does not
fit itself, instead of relying on seq_buf_puts() leaving it out,
which 04/12 changes (BPF CI)
- 04/12: note the audit of seq_buf_puts() and seq_buf_putmem() callers
in the commit message (BPF CI)
- 04/12, 05/12: drop the inaccurate "unlike the other writers" from
the export notes (BPF CI)
- 05/12: drop a duplicate #include from the tests
- 06/12: note in seq_buf_str()'s kernel-doc that only a zero-sized
seq_buf returns the static empty string (Andy)
- 07/12: write the seq_buf_terminate() test data with
seq_buf_putmem(), which leaves no NUL, so the test fails if
seq_buf_terminate() does nothing (Sashiko)
- 09/12: fix the commit message's description of seq_buf_init(), which
empties the buffer rather than setting its size to 0 (BPF CI)
- 09/12: check the length in the test of a string longer than the
size, so an unbounded scan fails it (Sashiko)
- v4..v5 diff: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/diff/?id=dev/v7.3-rc2/seq_buf/v5&id2=dev/v7.3-rc2/seq_buf/v4
v4: https://lore.kernel.org/all/20261003035906.too.263-kees@kernel.org/
v3: https://lore.kernel.org/all/20260930235231.out.387-kees@kernel.org/
v2: https://lore.kernel.org/all/20260919002658.stay.929-kees@kernel.org/
v1: https://lore.kernel.org/all/20260917002312.i.923-kees@kernel.org/
Thanks!
-Kees
[1] https://lore.kernel.org/all/20260917011359.1585961-1-morbo@google.com/
Bill Wendling (1):
seq_buf: Add seq_buf_init_append()
Kees Cook (11):
seq_buf: Do not print an empty line from an overflowed
seq_buf_do_printk()
seq_buf: Do not pop from an overflowed seq_buf
scsi: lpfc: Print rx monitor records straight into the seq_buf
seq_buf: Copy what fits when seq_buf_puts() and seq_buf_putmem()
overflow
seq_buf: Clear what a writer did not claim when a seq_buf overflows
seq_buf: Add seq_buf_strlen()
seq_buf: Add seq_buf_terminate()
bpf: Remove dead newline stripping from format_disasm_line()
powerpc/papr_scm: Return the string length from the sysfs show
functions
nvdimm: ndtest: Return the string length from flags_show()
docs: core-api: Document the seq_buf API
Documentation/core-api/kernel-api.rst | 9 +
include/linux/seq_buf.h | 141 +++++-
include/linux/trace_seq.h | 5 +-
arch/powerpc/platforms/pseries/papr_scm.c | 6 +-
drivers/scsi/lpfc/lpfc_sli.c | 45 +-
kernel/bpf/diagnostics.c | 8 +-
kernel/trace/trace_events.c | 4 +-
kernel/trace/trace_events_hist.c | 6 +-
lib/seq_buf.c | 37 +-
lib/tests/seq_buf_kunit.c | 537 +++++++++++++++++++++-
tools/testing/nvdimm/test/ndtest.c | 2 +-
11 files changed, 746 insertions(+), 54 deletions(-)
--
2.55.0
next reply other threads:[~2026-10-05 15:57 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-05 15:56 Kees Cook [this message]
2026-10-05 15:56 ` [PATCH v5 01/12] seq_buf: Do not print an empty line from an overflowed seq_buf_do_printk() Kees Cook
2026-10-05 15:56 ` [PATCH v5 02/12] seq_buf: Do not pop from an overflowed seq_buf Kees Cook
2026-10-05 16:02 ` sashiko-bot
2026-10-05 15:56 ` [PATCH v5 03/12] scsi: lpfc: Print rx monitor records straight into the seq_buf Kees Cook
2026-10-05 18:54 ` David Laight
2026-10-06 13:26 ` Kees Cook
2026-10-05 15:56 ` [PATCH v5 04/12] seq_buf: Copy what fits when seq_buf_puts() and seq_buf_putmem() overflow Kees Cook
2026-10-05 15:56 ` [PATCH v5 05/12] seq_buf: Clear what a writer did not claim when a seq_buf overflows Kees Cook
2026-10-05 18:59 ` David Laight
2026-10-06 21:26 ` Kees Cook
2026-10-05 15:56 ` [PATCH v5 06/12] seq_buf: Add seq_buf_strlen() Kees Cook
2026-10-05 15:56 ` [PATCH v5 07/12] seq_buf: Add seq_buf_terminate() Kees Cook
2026-10-05 15:56 ` [PATCH v5 08/12] bpf: Remove dead newline stripping from format_disasm_line() Kees Cook
2026-10-05 15:56 ` [PATCH v5 09/12] seq_buf: Add seq_buf_init_append() Kees Cook
2026-10-05 15:57 ` [PATCH v5 10/12] powerpc/papr_scm: Return the string length from the sysfs show functions Kees Cook
2026-10-05 15:57 ` [PATCH v5 11/12] nvdimm: ndtest: Return the string length from flags_show() Kees Cook
2026-10-05 15:57 ` [PATCH v5 12/12] docs: core-api: Document the seq_buf API Kees Cook
2026-10-12 5:00 ` [PATCH v5 00/12] seq_buf: Add seq_buf_strlen() Kees Cook
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261005155653.late.426-kees@kernel.org \
--to=kees@kernel.org \
--cc=James.Bottomley@HansenPartnership.com \
--cc=akpm@linux-foundation.org \
--cc=alison.schofield@intel.com \
--cc=andrii@kernel.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=ast@kernel.org \
--cc=blum@kernel.org \
--cc=chleroy@kernel.org \
--cc=corbet@lwn.net \
--cc=daniel@iogearbox.net \
--cc=dave.jiang@intel.com \
--cc=david@davidgow.net \
--cc=eddyz87@gmail.com \
--cc=emil@etsalapatis.com \
--cc=gnoack@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=icb@fastmail.org \
--cc=ihor.solodrai@linux.dev \
--cc=iweiny@kernel.org \
--cc=jikos@kernel.org \
--cc=jolsa@kernel.org \
--cc=justin.tee@broadcom.com \
--cc=lgs201920130244@gmail.com \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maddy@linux.ibm.com \
--cc=martin.lau@linux.dev \
--cc=mathieu.desnoyers@efficios.com \
--cc=memxor@gmail.com \
--cc=mhiramat@kernel.org \
--cc=mic@digikod.net \
--cc=mkp@kernel.org \
--cc=morbo@google.com \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=paul.ely@broadcom.com \
--cc=pmladek@suse.com \
--cc=rdunlap@infradead.org \
--cc=rostedt@goodmis.org \
--cc=sbhat@linux.ibm.com \
--cc=senozhatsky@chromium.org \
--cc=shuvampandey1@gmail.com \
--cc=skhan@linuxfoundation.org \
--cc=song@kernel.org \
--cc=u.kleine-koenig@baylibre.com \
--cc=u.kleine-koenig@pengutronix.de \
--cc=vishal.l.verma@intel.com \
--cc=willy@infradead.org \
--cc=yonghong.song@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.