]> www.infradead.org Git - users/dwmw2/linux.git/commit
string.h: Use ARRAY_SIZE() for memtostr*()/strtomem*()
authorKees Cook <kees@kernel.org>
Wed, 5 Feb 2025 21:45:26 +0000 (13:45 -0800)
committerKees Cook <kees@kernel.org>
Fri, 7 Feb 2025 02:48:04 +0000 (18:48 -0800)
commit6270f4deba3fbd77d1717fb8634f1fc612ff69e2
treec3528aa75278618d1a516781b72d73ace8bda199
parent20e5cc26e56db09cc612721f90b4994cce5e5b7b
string.h: Use ARRAY_SIZE() for memtostr*()/strtomem*()

The destination argument of memtostr*() and strtomem*() must be a
fixed-size char array at compile time, so there is no need to use
__builtin_object_size() (which is useful for when an argument is
either a pointer or unknown). Instead use ARRAY_SIZE(), which has the
benefit of working around a bug in Clang (fixed[1] in 15+) that got
__builtin_object_size() wrong sometimes.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202501310832.kiAeOt2z-lkp@intel.com/
Suggested-by: Kent Overstreet <kent.overstreet@linux.dev>
Link: https://github.com/llvm/llvm-project/commit/d8e0a6d5e9dd2311641f9a8a5d2bf90829951ddc
Tested-by: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Kees Cook <kees@kernel.org>
include/linux/string.h