[PATCH 00/10] Annotate arguments of memtostr/strtomem with __nonstring

From: Kees Cook
Date: Thu Feb 06 2025 - 20:01:07 EST


Hi,

The memtostr*() and strtomem*() helpers are designed to move between C
strings (NUL-terminated) and byte arrays (that may just be zero padded and
may not be NUL-terminated). The "nonstring" attribute is used to annotated
these kinds of byte arrays, and we can validate the annotation on the
arguments of the helpers. Add the the infrastructure to do this, and
then update all the places where these annotations are currently missing.

-Kees

Kees Cook (10):
scsi: mptfusion: Mark device strings as nonstring
scsi: mpi3mr: Mark device strings as nonstring
scsi: mpt3sas: Mark device strings as nonstring
scsi: qla2xxx: Mark device strings as nonstring
string: kunit: Mark nonstring test strings as __nonstring
x86/tdx: Mark message.str as nonstring
uapi: stddef.h: Introduce __kernel_nonstring
nilfs2: Mark on-disk strings as nonstring
compiler.h: Introduce __must_be_noncstr()
string.h: Validate memtostr*()/strtomem*() arguments more carefully

arch/x86/coco/tdx/tdx.c | 2 +-
drivers/message/fusion/mptsas.c | 8 ++++----
drivers/scsi/mpi3mr/mpi3mr_transport.c | 8 ++++----
drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h | 2 +-
drivers/scsi/mpt3sas/mpt3sas_transport.c | 8 ++++----
drivers/scsi/qla2xxx/qla_mr.h | 4 ++--
include/linux/compiler.h | 18 +++++++++++++++++-
include/linux/string.h | 16 ++++++++++++----
include/uapi/linux/nilfs2_ondisk.h | 3 ++-
include/uapi/linux/stddef.h | 6 ++++++
lib/string_kunit.c | 4 ++--
11 files changed, 55 insertions(+), 24 deletions(-)

--
2.34.1