Gustavo A. R. Silva
6daf141401
netfilter: 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]
Lastly, fix checkpatch.pl warning
WARNING: __aligned(size) is preferred over __attribute__((aligned(size)))
in net/bridge/netfilter/ebtables.c
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 76497732932f ("cxgb3/l2t: Fix undefined behaviour")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
2020-03-15 15:20:16 +01:00
..
2020-03-15 15:20:16 +01:00
2020-01-24 08:12:06 +01:00
2019-10-17 12:20:48 +02:00
2020-03-15 15:20:16 +01:00
2020-03-15 15:20:16 +01:00
2019-05-21 10:50:45 +02:00
2019-06-19 17:09:55 +02:00
2019-07-16 13:16:59 +02:00
2019-07-16 13:16:59 +02:00
2020-03-15 15:20:16 +01:00
2019-10-26 12:36:42 +02:00
2019-09-13 12:33:06 +02:00
2019-12-17 22:59:31 +01:00
2019-09-02 11:20:17 -07:00
2019-07-16 13:17:00 +02:00
2019-07-16 13:16:59 +02:00
2019-06-19 17:09:52 +02:00
2019-09-13 12:33:06 +02:00
2019-07-16 13:16:59 +02:00
2019-08-27 18:07:03 +02:00
2019-05-30 11:26:32 -07:00
2019-11-29 08:59:34 +01:00
2019-07-16 13:16:59 +02:00
2020-01-08 23:31:22 +01:00
2019-06-19 17:09:55 +02:00
2019-07-16 13:17:00 +02:00
2019-11-05 14:03:11 -08:00
2019-09-13 12:33:06 +02:00
2020-01-24 18:26:53 +01:00
2019-08-13 12:08:48 +02:00
2020-02-17 10:55:14 +01:00
2019-05-30 14:18:18 -07:00
2019-07-16 13:16:59 +02:00
2019-05-31 18:02:45 +02:00
2019-07-16 13:16:59 +02:00
2019-05-30 11:26:32 -07:00
2020-03-04 02:27:18 +01:00
2019-07-16 13:16:59 +02:00
2019-09-13 12:33:06 +02:00
2019-05-24 17:37:51 +02:00
2019-09-10 22:44:29 +02:00
2020-03-12 15:00:39 -07:00
2019-11-15 23:44:47 +01:00
2020-03-12 15:00:39 -07:00
2020-03-15 15:20:15 +01:00
2019-04-12 01:47:39 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-07-04 02:29:48 +02:00
2019-07-16 13:16:59 +02:00
2019-09-13 12:33:06 +02:00
2019-07-16 13:16:59 +02:00
2019-06-22 08:59:24 -04:00
2019-07-16 13:16:59 +02:00
2019-04-11 20:59:34 +02:00
2020-01-16 15:08:25 +01:00
2019-06-22 08:59:24 -04:00
2019-07-16 13:16:59 +02:00
2019-07-16 13:16:59 +02:00
2019-12-07 19:53:00 +01:00
2017-11-02 11:10:55 +01:00
2020-03-04 02:27:18 +01:00
2020-03-15 15:20:16 +01:00
2019-07-05 21:34:47 +02:00
2020-01-24 20:54:11 +01:00
2019-06-19 17:09:55 +02:00
2020-03-15 15:20:16 +01:00
2020-03-04 02:28:08 +01:00
2019-05-24 17:37:51 +02:00
2019-08-26 11:06:07 +02:00
2019-06-02 18:06:26 -07:00
2020-01-14 11:48:41 -08:00
2020-01-24 20:54:29 +01:00
2020-01-16 15:52:02 +01:00
2019-08-26 11:01:00 +02:00
2019-10-23 13:01:34 +02:00
2020-03-06 18:00:43 +01:00
2019-04-08 23:01:42 +02:00
2019-12-09 13:14:03 +01:00
2019-06-19 17:09:55 +02:00
2019-10-01 18:42:15 +02:00
2019-06-19 17:09:55 +02:00
2019-12-09 10:36:44 -08:00
2019-09-10 22:44:29 +02:00
2020-01-27 08:54:30 +01:00
2019-06-25 01:32:59 +02:00
2019-06-19 17:09:55 +02:00
2019-09-03 22:53:56 +02:00
2019-06-19 17:09:55 +02:00
2020-01-05 10:06:22 +01:00
2019-09-10 22:44:29 +02:00
2019-07-16 13:17:03 +02:00
2019-08-13 12:10:01 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-09-20 10:20:02 +02:00
2019-12-09 10:36:44 -08:00
2019-12-26 17:41:34 +01:00
2019-12-09 10:36:44 -08:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:15 +02:00
2020-01-18 21:18:41 +01:00
2020-03-04 02:28:17 +01:00
2019-06-19 17:09:55 +02:00
2019-09-03 19:05:00 +02:00
2019-12-09 13:14:03 +01:00
2019-12-09 10:36:44 -08:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2020-03-15 15:20:16 +01:00
2020-03-15 15:20:16 +01:00
2020-03-15 15:20:16 +01:00
2020-03-15 15:20:16 +01:00
2019-09-02 23:20:59 +02:00
2019-09-10 22:35:37 +02:00
2019-12-26 13:11:40 -08:00
2020-03-15 15:20:16 +01:00
2019-06-19 17:09:55 +02:00
2019-06-28 19:30:50 +02:00
2020-03-04 02:27:18 +01:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:45 +02:00
2018-02-14 21:05:38 +01:00
2019-06-19 17:09:55 +02:00
2019-09-13 12:33:06 +02:00
2019-05-21 11:28:45 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-22 08:59:24 -04:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2020-03-15 15:20:16 +01:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-22 08:59:24 -04:00
2019-11-05 14:03:11 -08:00
2020-03-15 15:20:16 +01:00
2019-05-30 11:26:32 -07:00
2019-06-25 01:32:59 +02:00
2019-05-21 10:50:45 +02:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:38 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-08-19 09:34:21 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 11:28:45 +02:00
2019-06-25 01:32:59 +02:00
2019-09-13 12:32:48 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:45 +02:00
2019-06-19 17:09:55 +02:00
2019-12-09 10:36:44 -08:00
2019-06-19 17:09:55 +02:00
2020-03-15 15:20:16 +01:00
2019-06-19 17:09:55 +02:00
2017-11-02 11:10:55 +01:00
2019-05-21 10:50:45 +02:00
2020-03-15 15:20:16 +01:00
2019-08-13 12:14:26 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-22 08:59:24 -04:00
2019-06-22 08:59:24 -04:00
2019-05-21 10:50:45 +02:00
2019-05-21 11:28:40 +02:00
2019-11-15 23:44:45 +01:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00