linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH][next] wifi: mwl8k: Use static_assert() to check struct sizes
@ 2024-08-08 22:11 Gustavo A. R. Silva
  2024-08-13  9:58 ` Kalle Valo
  0 siblings, 1 reply; 2+ messages in thread
From: Gustavo A. R. Silva @ 2024-08-08 22:11 UTC (permalink / raw)
  To: Kalle Valo
  Cc: linux-wireless, linux-kernel, Gustavo A. R. Silva,
	linux-hardening

Commit 5c4250092fad ("wifi: mwl8k: Avoid -Wflex-array-member-not-at-end
warnings") introduced tagged `struct mwl8k_cmd_pkt_hdr`. We want to
ensure that when new members need to be added to the flexible structure,
they are always included within this tagged struct.

We use `static_assert()` to ensure that the memory layout for both
the flexible structure and the tagged struct is the same after any
changes.

Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/wireless/marvell/mwl8k.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/wireless/marvell/mwl8k.c b/drivers/net/wireless/marvell/mwl8k.c
index b130e057370f..bab9ef37a1ab 100644
--- a/drivers/net/wireless/marvell/mwl8k.c
+++ b/drivers/net/wireless/marvell/mwl8k.c
@@ -587,6 +587,7 @@ static int mwl8k_request_firmware(struct mwl8k_priv *priv, char *fw_image,
 }
 
 struct mwl8k_cmd_pkt {
+	/* New members MUST be added within the __struct_group() macro below. */
 	__struct_group(mwl8k_cmd_pkt_hdr, hdr, __packed,
 		__le16	code;
 		__le16	length;
@@ -596,6 +597,8 @@ struct mwl8k_cmd_pkt {
 	);
 	char payload[];
 } __packed;
+static_assert(offsetof(struct mwl8k_cmd_pkt, payload) == sizeof(struct mwl8k_cmd_pkt_hdr),
+	      "struct member likely outside of __struct_group()");
 
 /*
  * Firmware loading.
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH][next] wifi: mwl8k: Use static_assert() to check struct sizes
  2024-08-08 22:11 [PATCH][next] wifi: mwl8k: Use static_assert() to check struct sizes Gustavo A. R. Silva
@ 2024-08-13  9:58 ` Kalle Valo
  0 siblings, 0 replies; 2+ messages in thread
From: Kalle Valo @ 2024-08-13  9:58 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: linux-wireless, linux-kernel, Gustavo A. R. Silva,
	linux-hardening

"Gustavo A. R. Silva" <gustavoars@kernel.org> wrote:

> Commit 5c4250092fad ("wifi: mwl8k: Avoid -Wflex-array-member-not-at-end
> warnings") introduced tagged `struct mwl8k_cmd_pkt_hdr`. We want to
> ensure that when new members need to be added to the flexible structure,
> they are always included within this tagged struct.
> 
> We use `static_assert()` to ensure that the memory layout for both
> the flexible structure and the tagged struct is the same after any
> changes.
> 
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Patch applied to wireless-next.git, thanks.

748e21d94a34 wifi: mwl8k: Use static_assert() to check struct sizes

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/ZrVCg51Q9M2fTPaF@cute/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-08-13  9:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-08 22:11 [PATCH][next] wifi: mwl8k: Use static_assert() to check struct sizes Gustavo A. R. Silva
2024-08-13  9:58 ` Kalle Valo

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).