diff options
Diffstat (limited to 'net/ieee80211/ieee80211_rx.c')
-rw-r--r-- | net/ieee80211/ieee80211_rx.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ieee80211/ieee80211_rx.c b/net/ieee80211/ieee80211_rx.c index 94e2b8e2ab26..6ae036b1920f 100644 --- a/net/ieee80211/ieee80211_rx.c +++ b/net/ieee80211/ieee80211_rx.c | |||
@@ -759,8 +759,9 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb, | |||
759 | IEEE80211_FCTL_TODS) && skb->len >= ETH_HLEN + ETH_ALEN) { | 759 | IEEE80211_FCTL_TODS) && skb->len >= ETH_HLEN + ETH_ALEN) { |
760 | /* Non-standard frame: get addr4 from its bogus location after | 760 | /* Non-standard frame: get addr4 from its bogus location after |
761 | * the payload */ | 761 | * the payload */ |
762 | memcpy(skb->data + ETH_ALEN, | 762 | skb_copy_to_linear_data_offset(skb, ETH_ALEN, |
763 | skb->data + skb->len - ETH_ALEN, ETH_ALEN); | 763 | skb->data + skb->len - ETH_ALEN, |
764 | ETH_ALEN); | ||
764 | skb_trim(skb, skb->len - ETH_ALEN); | 765 | skb_trim(skb, skb->len - ETH_ALEN); |
765 | } | 766 | } |
766 | #endif | 767 | #endif |