From: Phil Sutter <phil@nwl.cc>
To: Pablo Neira Ayuso <pablo@netfilter.org>
Cc: netfilter-devel@vger.kernel.org
Subject: [nf-next PATCH] netfilter: include: uapi: Use C99 flexible array member
Date: Mon, 13 Jul 2020 13:15:52 +0200 [thread overview]
Message-ID: <20200713111552.25399-1-phil@nwl.cc> (raw)
Recent versions of gcc started to complain about the old-style
zero-length array as last member of structs ipt_replace and
ip6t_replace. For instance, while compiling iptables:
| In file included from /usr/include/string.h:495,
| from libip4tc.c:15:
| In function 'memcpy',
| inlined from 'iptcc_compile_chain' at libiptc.c:1172:2,
| inlined from 'iptcc_compile_table' at libiptc.c:1243:13,
| inlined from 'iptc_commit' at libiptc.c:2572:8,
| inlined from 'iptc_commit' at libiptc.c:2510:1:
| /usr/include/bits/string_fortified.h:34:10: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
| 34 | return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| In file included from ../include/libiptc/libiptc.h:12,
| from libip4tc.c:29:
| libiptc.c: In function 'iptc_commit':
| ../include/linux/netfilter_ipv4/ip_tables.h:202:19: note: at offset 0 to object 'entries' with size 0 declared here
| 202 | struct ipt_entry entries[0];
| | ^~~~~~~
(Similar for libip6tc.c.)
Avoid this warning by declaring 'entries' as an ISO C99 flexible array
member. This makes gcc aware of the intended use and enables sanity
checking as described in:
https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
Signed-off-by: Phil Sutter <phil@nwl.cc>
---
include/uapi/linux/netfilter_ipv4/ip_tables.h | 2 +-
include/uapi/linux/netfilter_ipv6/ip6_tables.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/uapi/linux/netfilter_ipv4/ip_tables.h b/include/uapi/linux/netfilter_ipv4/ip_tables.h
index 50c7fee625ae9..1a298cc7a29c1 100644
--- a/include/uapi/linux/netfilter_ipv4/ip_tables.h
+++ b/include/uapi/linux/netfilter_ipv4/ip_tables.h
@@ -203,7 +203,7 @@ struct ipt_replace {
struct xt_counters __user *counters;
/* The entries (hang off end: not really an array). */
- struct ipt_entry entries[0];
+ struct ipt_entry entries[];
};
/* The argument to IPT_SO_GET_ENTRIES. */
diff --git a/include/uapi/linux/netfilter_ipv6/ip6_tables.h b/include/uapi/linux/netfilter_ipv6/ip6_tables.h
index d9e364f96a5cf..623d84a169efd 100644
--- a/include/uapi/linux/netfilter_ipv6/ip6_tables.h
+++ b/include/uapi/linux/netfilter_ipv6/ip6_tables.h
@@ -243,7 +243,7 @@ struct ip6t_replace {
struct xt_counters __user *counters;
/* The entries (hang off end: not really an array). */
- struct ip6t_entry entries[0];
+ struct ip6t_entry entries[];
};
/* The argument to IP6T_SO_GET_ENTRIES. */
--
2.27.0
next reply other threads:[~2020-07-13 11:16 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-13 11:15 Phil Sutter [this message]
2020-07-15 18:14 ` [nf-next PATCH] netfilter: include: uapi: Use C99 flexible array member Pablo Neira Ayuso
2020-07-17 10:06 ` Phil Sutter
2020-07-17 10:20 ` Pablo Neira Ayuso
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200713111552.25399-1-phil@nwl.cc \
--to=phil@nwl.cc \
--cc=netfilter-devel@vger.kernel.org \
--cc=pablo@netfilter.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).