diff options
Diffstat (limited to 'drivers/net/wireless/realtek/rtlwifi/pci.c')
| -rw-r--r-- | drivers/net/wireless/realtek/rtlwifi/pci.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/realtek/rtlwifi/pci.c b/drivers/net/wireless/realtek/rtlwifi/pci.c index 6087ec7a90a6..f88d26535978 100644 --- a/drivers/net/wireless/realtek/rtlwifi/pci.c +++ b/drivers/net/wireless/realtek/rtlwifi/pci.c @@ -822,7 +822,7 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)  		hdr = rtl_get_hdr(skb);  		fc = rtl_get_fc(skb); -		if (!stats.crc && !stats.hwerror) { +		if (!stats.crc && !stats.hwerror && (skb->len > FCS_LEN)) {  			memcpy(IEEE80211_SKB_RXCB(skb), &rx_status,  			       sizeof(rx_status)); @@ -859,6 +859,7 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)  				_rtl_pci_rx_to_mac80211(hw, skb, rx_status);  			}  		} else { +			/* drop packets with errors or those too short */  			dev_kfree_skb_any(skb);  		}  new_trx_end:  |