wifi: ath: Silence memcpy run-time false positive warning
Subsystems (3)
PATCH 1/1 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)
--- drivers/net/wireless/ath/ath.h | 12 +++++++----- drivers/net/wireless/ath/key.c | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-)
drivers/net/wireless/ath/ath.h +7 -5
@@ -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 {
drivers/net/wireless/ath/key.c +1 -1
@@ -503,7 +503,7 @@ int ath_key_config(struct ath_common *common, hk.kv_len = key->keylen;if (key->keylen) -memcpy (hk.kv_val, key->key, key->keylen); +memcpy (&hk.kv_values, key->key, key->keylen);if (!(key->flags &IEEE80211_KEY_FLAG_PAIRWISE )) {switch (vif->type) {
Signature · 1 line
2.34.1
Quoted 8 lines · Kees Cook
The
memcpy()inath_key_config()was attempting to write across neighboring struct members in structath_keyval. Introduce a wrappingstruct_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)
Quoted 10 lines
Cc Kalle Valo <[email protected]>Cc "David S. Miller" <[email protected]>Cc Eric Dumazet <[email protected]>Cc Jakub Kicinski <[email protected]>Cc Paolo Abeni <[email protected]>Signed-off-by Kees Cook <[email protected]>Signed-off-by Kalle Valo <[email protected]>
Patch applied to ath-next branch of ath.git, thanks.
bfcc8ba45eb8 wifi: ath: Silence memcpy run-time false positive warning
Signature · 3 lines
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches