{"id":2221603,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2221603/?format=json","web_url":"http://patchwork.ozlabs.org/project/netfilter-devel/patch/adgpg3W5FiX9m49-@kspp/","project":{"id":26,"url":"http://patchwork.ozlabs.org/api/1.1/projects/26/?format=json","name":"Netfilter Development","link_name":"netfilter-devel","list_id":"netfilter-devel.vger.kernel.org","list_email":"netfilter-devel@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<adgpg3W5FiX9m49-@kspp>","date":"2026-04-09T22:34:43","name":"[v3,next] netfilter: x_tables: Avoid a couple -Wflex-array-member-not-at-end warnings","commit_ref":null,"pull_url":null,"state":"accepted","archived":true,"hash":"318e1c192d63ee4d856fa6b3ef34efdfe0a8a516","submitter":{"id":79098,"url":"http://patchwork.ozlabs.org/api/1.1/people/79098/?format=json","name":"Gustavo A. R. Silva","email":"gustavoars@kernel.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/netfilter-devel/patch/adgpg3W5FiX9m49-@kspp/mbox/","series":[{"id":499368,"url":"http://patchwork.ozlabs.org/api/1.1/series/499368/?format=json","web_url":"http://patchwork.ozlabs.org/project/netfilter-devel/list/?series=499368","date":"2026-04-09T22:34:43","name":"[v3,next] netfilter: x_tables: Avoid a couple -Wflex-array-member-not-at-end warnings","version":3,"mbox":"http://patchwork.ozlabs.org/series/499368/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2221603/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2221603/checks/","tags":{},"headers":{"Return-Path":"\n <netfilter-devel+bounces-11783-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","netfilter-devel@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=sY6ukHw2;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=netfilter-devel+bounces-11783-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"sY6ukHw2\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fsFGh1KFmz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 08:39:08 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id F22F2305FFFD\n\tfor <incoming@patchwork.ozlabs.org>; Thu,  9 Apr 2026 22:35:53 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 2DFF4396B67;\n\tThu,  9 Apr 2026 22:35:51 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id ACEAB395DA9;\n\tThu,  9 Apr 2026 22:35:50 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 74285C2BC87;\n\tThu,  9 Apr 2026 22:35:48 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775774150; cv=none;\n b=GpOJ52SINGT2aLNjMzWyJqCRdI2FW3gv82zfJkTmaihDSMrg2TFOEQidgCZgZRQ8EJSHQW8/fh5EL39jbT/x8emIEH7u2/UzOeupsNkzyq5Cg3x4C/pgzOXFozjYelLvCIo85eaxOrWcNUZYjX8goqmmsWxXeJoLgANmmyP5hGI=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775774150; c=relaxed/simple;\n\tbh=J/2ZuFqPndxjtk3a4BAUjbPeGRBmaU9iiJajKE46LAs=;\n\th=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type:\n\t Content-Disposition;\n b=bdoc//029K4XH+KfkQfKozsUQJwTgQFMktbhkECPb5J/A9dEjSiTh1jSJN5INjh87Voa1h5Roif6/4m1nnrZZym+xWnlo9fHVA9wFzS8BME5M5rCq1u2+hdamKANWwgDy0559j+GKCU5a5pcWRFdn1KbeNcg40B/ahuZXKlXJ3E=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=sY6ukHw2; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1775774150;\n\tbh=J/2ZuFqPndxjtk3a4BAUjbPeGRBmaU9iiJajKE46LAs=;\n\th=Date:From:To:Cc:Subject:From;\n\tb=sY6ukHw2RK3yFOrsBaDr1fi35Wj3daX+cGyFXiJU+td55zqp7UTyrkyF8PwYUhnew\n\t CrHTtnESfl9Dh3msfXnkXgtK4hbayqmhK0xFnZSxfoYlQd1xDUQRLPelRZ/qHEEwY2\n\t DHjicNmXyRoxFeprGuK5ofhMbEXkPA8CVfgRE/XJu8pP8/5OAtAmVtCHzz5SN+Js4B\n\t 4jnSj6jxWIWJ2MEMOB3lIRdqh5IF4ps6OAj6tTnK1iyv2F13et/hqvIbwDy3qPY7uS\n\t UUoSr6NUwZZ8YrfsYnGZjo+BYaTF9FcHc2SIhIeYS5HtXSM4QX09g0++LmTOdpumFb\n\t Cl1HgDSAcNadw==","Date":"Thu, 9 Apr 2026 16:34:43 -0600","From":"\"Gustavo A. R. Silva\" <gustavoars@kernel.org>","To":"Pablo Neira Ayuso <pablo@netfilter.org>,\n\tFlorian Westphal <fw@strlen.de>, Phil Sutter <phil@nwl.cc>,\n\t\"David S. Miller\" <davem@davemloft.net>,\n\tEric Dumazet <edumazet@google.com>,\n\tJakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,\n\tSimon Horman <horms@kernel.org>","Cc":"netfilter-devel@vger.kernel.org, coreteam@netfilter.org,\n\tnetdev@vger.kernel.org, linux-kernel@vger.kernel.org,\n\t\"Gustavo A. R. Silva\" <gustavoars@kernel.org>,\n\tlinux-hardening@vger.kernel.org, Kees Cook <kees@kernel.org>","Subject":"[PATCH v3][next] netfilter: x_tables: Avoid a couple\n -Wflex-array-member-not-at-end warnings","Message-ID":"<adgpg3W5FiX9m49-@kspp>","Precedence":"bulk","X-Mailing-List":"netfilter-devel@vger.kernel.org","List-Id":"<netfilter-devel.vger.kernel.org>","List-Subscribe":"<mailto:netfilter-devel+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:netfilter-devel+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline"},"content":"-Wflex-array-member-not-at-end was introduced in GCC-14, and we are\ngetting ready to enable it, globally.\n\nUse the TRAILING_OVERLAP() helper to fix the following warnings:\n\n1 net/netfilter/x_tables.c:816:39: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]\n1 net/netfilter/x_tables.c:811:39: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]\n\nThis helper creates a union between a flexible-array member (FAM)\nand a set of members that would otherwise follow it. This overlays\nthe trailing members onto the FAM while preserving the original\nmemory layout.\n\nSigned-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>\n---\nChanges in v3:\n - Use the TRAILING_OVERLAP() helper.\n  - Update changelog text.\n\nChanges in v2:\n - Update verdict after (compat_uint_t *)st->data;\n - Link: https://lore.kernel.org/linux-hardening/adgL5wPm9VpaV3MO@kspp/\n\nv1:\n - Link: https://lore.kernel.org/linux-hardening/adbIKC0cZcK7VcCF@kspp/\n\n net/netfilter/x_tables.c | 12 ++++++++----\n 1 file changed, 8 insertions(+), 4 deletions(-)","diff":"diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c\nindex b39017c80548..9f837fb5ceb4 100644\n--- a/net/netfilter/x_tables.c\n+++ b/net/netfilter/x_tables.c\n@@ -819,13 +819,17 @@ EXPORT_SYMBOL_GPL(xt_compat_match_to_user);\n \n /* non-compat version may have padding after verdict */\n struct compat_xt_standard_target {\n-\tstruct compat_xt_entry_target t;\n-\tcompat_uint_t verdict;\n+\t/* Must be last as it ends in a flexible-array member. */\n+\tTRAILING_OVERLAP(struct compat_xt_entry_target, t, data,\n+\t\tcompat_uint_t verdict;\n+\t);\n };\n \n struct compat_xt_error_target {\n-\tstruct compat_xt_entry_target t;\n-\tchar errorname[XT_FUNCTION_MAXNAMELEN];\n+\t/* Must be last as it ends in a flexible-array member. */\n+\tTRAILING_OVERLAP(struct compat_xt_entry_target, t, data,\n+\t\tchar errorname[XT_FUNCTION_MAXNAMELEN];\n+\t);\n };\n \n int xt_compat_check_entry_offsets(const void *base, const char *elems,\n","prefixes":["v3","next"]}