mirror-linux/arch/mips/include/uapi/asm
Gustavo A. R. Silva 94dfc73e7c treewide: uapi: Replace zero-length arrays with flexible-array members
There is a regular need in the kernel to provide a way to declare
having a dynamically sized set of trailing elements in a structure.
Kernel code should always use “flexible array members”[1] for these
cases. The older style of one-element or zero-length arrays should
no longer be used[2].

This code was transformed with the help of Coccinelle:
(linux-5.19-rc2$ spatch --jobs $(getconf _NPROCESSORS_ONLN) --sp-file script.cocci --include-headers --dir . > output.patch)

@@
identifier S, member, array;
type T1, T2;
@@

struct S {
  ...
  T1 member;
  T2 array[
- 0
  ];
};

-fstrict-flex-arrays=3 is coming and we need to land these changes
to prevent issues like these in the short future:

../fs/minix/dir.c:337:3: warning: 'strcpy' will always overflow; destination buffer has size 0,
but the source string has length 2 (including NUL byte) [-Wfortify-source]
		strcpy(de3->name, ".");
		^

Since these are all [0] to [] changes, the risk to UAPI is nearly zero. If
this breaks anything, we can use a union with a new member name.

[1] https://en.wikipedia.org/wiki/Flexible_array_member
[2] https://www.kernel.org/doc/html/v5.16/process/deprecated.html#zero-length-and-one-element-arrays

Link: https://github.com/KSPP/linux/issues/78
Build-tested-by: kernel test robot <lkp@intel.com>
Link: https://lore.kernel.org/lkml/62b675ec.wKX6AOZ6cbE71vtF%25lkp@intel.com/
Acked-by: Dan Williams <dan.j.williams@intel.com> # For ndctl.h
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
2022-06-28 21:26:05 +02:00
..
Kbuild MIPS: UAPI: unexport unistd_nr_{n32,n64,o32}.h 2021-01-07 17:14:56 +01:00
auxvec.h
bitfield.h
bitsperlong.h
break.h
byteorder.h
cachectl.h
errno.h
fcntl.h uapi: always define F_GETLK64/F_SETLK64/F_SETLKW64 in fcntl.h 2022-04-26 13:35:20 -07:00
hwcap.h
inst.h KVM: MIPS: Add CPUCFG emulation for Loongson-3 2020-06-04 13:51:33 -04:00
ioctl.h
ioctls.h
kvm.h
mman.h mm: madvise: MADV_DONTNEED_LOCKED 2022-03-24 19:06:51 -07:00
msgbuf.h
param.h
perf_regs.h MIPS: kernel: Support extracting off-line stack traces from user-space with perf 2021-02-04 21:55:45 +01:00
poll.h
posix_types.h
ptrace.h
reg.h
resource.h
sembuf.h
setup.h
sgidefs.h
shmbuf.h shmbuf.h: add asm/shmbuf.h to UAPI compile-test coverage 2022-02-17 09:09:37 +01:00
sigcontext.h
siginfo.h signal: Remove the generic __ARCH_SI_TRAPNO support 2021-07-23 13:14:13 -05:00
signal.h signal.h: add linux/signal.h and asm/signal.h to UAPI compile-test coverage 2022-02-17 09:09:36 +01:00
socket.h net: SO_RCVMARK socket option for SO_MARK with recvmsg() 2022-04-28 13:08:15 -07:00
sockios.h
stat.h mips: use __kernel_{uid,gid}32_t in uapi/asm/stat.h 2022-06-02 17:38:15 +02:00
statfs.h
swab.h
sysmips.h
termbits.h termbits.h: Remove posix_types.h include 2022-05-19 18:25:26 +02:00
termios.h
types.h
ucontext.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
unistd.h