mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
compiler.h: Introduce __must_be_byte_array()
In preparation for adding stricter type checking to the str/mem*() helpers, provide a way to check that a variable is a byte array via __must_be_byte_array(). Suggested-by: Kent Overstreet <kent.overstreet@linux.dev> Signed-off-by: Kees Cook <kees@kernel.org>
This commit is contained in:
@@ -221,7 +221,13 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
|
||||
#endif /* __CHECKER__ */
|
||||
|
||||
/* &a[0] degrades to a pointer: a different type from an array */
|
||||
#define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(__same_type((a), &(a)[0]), "must be array")
|
||||
#define __is_array(a) (!__same_type((a), &(a)[0]))
|
||||
#define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \
|
||||
"must be array")
|
||||
|
||||
#define __is_byte_array(a) (__is_array(a) && sizeof((a)[0]) == 1)
|
||||
#define __must_be_byte_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_byte_array(a), \
|
||||
"must be byte array")
|
||||
|
||||
/* Require C Strings (i.e. NUL-terminated) lack the "nonstring" attribute. */
|
||||
#define __must_be_cstr(p) \
|
||||
|
||||
Reference in New Issue
Block a user