linux/arch/m68k
Gustavo A. R. Silva 3381df0954 m68k: tools: Replace zero-length array with flexible-array member
The current codebase makes use of the zero-length array language
extension to the C90 standard, but the preferred mechanism to declare
variable-length types such as these ones is a flexible array member[1][2],
introduced in C99:

struct foo {
        int stuff;
        struct boo array[];
};

By making use of the mechanism above, we will get a compiler warning
in case the flexible array does not occur last in the structure, which
will help us prevent some kind of undefined behavior bugs from being
inadvertently introduced[3] to the codebase from now on.

Also, notice that, dynamic memory allocations won't be affected by
this change:

"Flexible array members have incomplete type, and so the sizeof operator
may not be applied. As a quirk of the original implementation of
zero-length arrays, sizeof evaluates to zero."[1]

This issue was found with the help of Coccinelle.

[1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
[2] https://github.com/KSPP/linux/issues/21
[3] commit 7649773293 ("cxgb3/l2t: Fix undefined behaviour")

Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Link: https://lore.kernel.org/r/20200521185707.GA3661@embeddedor
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
2020-05-25 10:55:56 +02:00
..
68000 m68k: Replace setup_irq() by request_irq() 2020-03-23 12:01:19 +10:00
amiga m68k: amiga: config: Replace zero-length array with flexible-array member 2020-04-27 11:51:08 +02:00
apollo treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
atari m68k/atari: Convert Falcon IDE drivers to platform drivers 2019-11-18 10:18:59 +01:00
bvme6000 treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
coldfire m68k: Replace setup_irq() by request_irq() 2020-03-23 12:01:19 +10:00
configs m68k: defconfig: Update defconfigs for v5.7-rc1 2020-05-11 10:50:03 +02:00
emu block: simplify queue allocation 2020-03-27 10:23:43 -06:00
fpsp040 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hp300 treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
ifpsp060 scripts/spelling.txt: add regsiter -> register spelling mistake 2017-05-08 17:15:13 -07:00
include m68k: Add missing __user annotation in get_user() 2020-05-25 10:55:56 +02:00
kernel .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
lib treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mac m68k: mac: Avoid stuck ISM IOP interrupt on Quadra 900/950 2020-05-25 10:55:56 +02:00
math-emu treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 74 2019-05-24 17:36:47 +02:00
mm mm/vma: append unlikely() while testing VMA access permissions 2020-04-07 10:43:38 -07:00
mvme16x treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
mvme147 treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
q40 m68k: q40: Fix info-leak in rtc_ioctl 2019-10-21 09:08:15 +02:00
sun3 treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
sun3x arch/m68k/setup: Drop dummy_con initialization 2020-01-14 15:29:16 +01:00
tools/amiga m68k: tools: Replace zero-length array with flexible-array member 2020-05-25 10:55:56 +02:00
install.sh
Kconfig m68k: Implement copy_thread_tls() 2020-01-14 10:43:38 +01:00
Kconfig.bus m68k: Fix Kconfig indentation 2020-03-09 11:12:19 +01:00
Kconfig.cpu PCI: consolidate PCI config entry in drivers/pci 2018-11-23 11:45:34 +09:00
Kconfig.debug m68k: Fix Kconfig indentation 2020-03-09 11:12:19 +01:00
Kconfig.devices License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kconfig.machine m68k: Fix Kconfig indentation 2020-03-09 11:12:19 +01:00
Makefile kbuild: rebuild modules when module linker scripts are updated 2019-08-21 21:05:21 +09:00