summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath/ath.h
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2023-02-15 20:31:38 +0200
committerKalle Valo <quic_kvalo@quicinc.com>2023-02-17 18:24:16 +0200
commitbfcc8ba45eb87bfaaff900bbad2b87b204899d41 (patch)
tree55fc97e1efdfb1184bb0d27f553cc20a4e03d02a /drivers/net/wireless/ath/ath.h
parent3c3ab8c9a29662ef25f8f62b8f118cd9b0eadd88 (diff)
downloadlinux-bfcc8ba45eb87bfaaff900bbad2b87b204899d41.tar.gz
linux-bfcc8ba45eb87bfaaff900bbad2b87b204899d41.tar.bz2
linux-bfcc8ba45eb87bfaaff900bbad2b87b204899d41.zip
wifi: ath: Silence memcpy run-time false positive warning
The memcpy() in ath_key_config() was attempting to write across neighboring struct members in struct ath_keyval. Introduce a wrapping struct_group, kv_values, to be the addressable target of the memcpy without overflowing an individual member. Silences the false positive run-time warning: memcpy: detected field-spanning write (size 32) of single field "hk.kv_val" at drivers/net/wireless/ath/key.c:506 (size 16) Link: https://bbs.archlinux.org/viewtopic.php?id=282254 Cc: Kalle Valo <kvalo@kernel.org> Cc: "David S. Miller" <davem@davemloft.net> Cc: Eric Dumazet <edumazet@google.com> Cc: Jakub Kicinski <kuba@kernel.org> Cc: Paolo Abeni <pabeni@redhat.com> Cc: linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20230210054310.never.554-kees@kernel.org
Diffstat (limited to 'drivers/net/wireless/ath/ath.h')
-rw-r--r--drivers/net/wireless/ath/ath.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/wireless/ath/ath.h b/drivers/net/wireless/ath/ath.h
index f083fb9038c3..f02a308a9ffc 100644
--- a/drivers/net/wireless/ath/ath.h
+++ b/drivers/net/wireless/ath/ath.h
@@ -96,11 +96,13 @@ struct ath_keyval {
u8 kv_type;
u8 kv_pad;
u16 kv_len;
- u8 kv_val[16]; /* TK */
- u8 kv_mic[8]; /* Michael MIC key */
- u8 kv_txmic[8]; /* Michael MIC TX key (used only if the hardware
- * supports both MIC keys in the same key cache entry;
- * in that case, kv_mic is the RX key) */
+ struct_group(kv_values,
+ u8 kv_val[16]; /* TK */
+ u8 kv_mic[8]; /* Michael MIC key */
+ u8 kv_txmic[8]; /* Michael MIC TX key (used only if the hardware
+ * supports both MIC keys in the same key cache entry;
+ * in that case, kv_mic is the RX key) */
+ );
};
enum ath_cipher {