Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: uapi: Replace zero-length arrays with __DECLARE_FLEX_ARRAY() helper

Zero-length arrays are deprecated and we are moving towards adopting
C99 flexible-array members, instead. So, replace zero-length arrays
declarations in anonymous union with the new __DECLARE_FLEX_ARRAY()
helper macro.

This helper allows for flexible-array members in unions.

Link: https://github.com/KSPP/linux/issues/193
Link: https://github.com/KSPP/linux/issues/227
Link: https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>

+3 -3
+3 -3
include/uapi/sound/asoc.h
··· 222 222 __le32 type; /* SND_SOC_TPLG_TUPLE_TYPE_ */ 223 223 __le32 num_elems; /* number of elements in array */ 224 224 union { 225 - struct snd_soc_tplg_vendor_uuid_elem uuid[0]; 226 - struct snd_soc_tplg_vendor_value_elem value[0]; 227 - struct snd_soc_tplg_vendor_string_elem string[0]; 225 + __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_uuid_elem, uuid); 226 + __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_value_elem, value); 227 + __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_string_elem, string); 228 228 }; 229 229 } __attribute__((packed)); 230 230