ath11k: Build check size of ath11k_skb_cb
authorSven Eckelmann <sven@narfation.org>
Tue, 24 Nov 2020 15:59:16 +0000 (17:59 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 2 Dec 2020 18:19:06 +0000 (20:19 +0200)
It is rather easy to add more entries to ath11k_skb_cb while forgetting the
size limit of ieee80211_tx_info->driver_data. So just check this during the
build to reduce the change of accidental buffer overflow in the skbuff->cb.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20201119154235.263250-3-sven@narfation.org
drivers/net/wireless/ath/ath11k/core.h

index 25609ff..317b15e 100644 (file)
@@ -909,6 +909,8 @@ static inline const char *ath11k_scan_state_str(enum ath11k_scan_state state)
 
 static inline struct ath11k_skb_cb *ATH11K_SKB_CB(struct sk_buff *skb)
 {
+       BUILD_BUG_ON(sizeof(struct ath11k_skb_cb) >
+                    IEEE80211_TX_INFO_DRIVER_DATA_SIZE);
        return (struct ath11k_skb_cb *)&IEEE80211_SKB_CB(skb)->driver_data;
 }