diff options
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r-- | net/mac80211/rx.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 28624282c5f3..2bec9b9dba09 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -1715,6 +1715,8 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx) | |||
1715 | if (!fwd_skb && net_ratelimit()) | 1715 | if (!fwd_skb && net_ratelimit()) |
1716 | printk(KERN_DEBUG "%s: failed to clone mesh frame\n", | 1716 | printk(KERN_DEBUG "%s: failed to clone mesh frame\n", |
1717 | sdata->name); | 1717 | sdata->name); |
1718 | if (!fwd_skb) | ||
1719 | goto out; | ||
1718 | 1720 | ||
1719 | fwd_hdr = (struct ieee80211_hdr *) fwd_skb->data; | 1721 | fwd_hdr = (struct ieee80211_hdr *) fwd_skb->data; |
1720 | memcpy(fwd_hdr->addr2, sdata->vif.addr, ETH_ALEN); | 1722 | memcpy(fwd_hdr->addr2, sdata->vif.addr, ETH_ALEN); |
@@ -1752,6 +1754,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx) | |||
1752 | } | 1754 | } |
1753 | } | 1755 | } |
1754 | 1756 | ||
1757 | out: | ||
1755 | if (is_multicast_ether_addr(hdr->addr1) || | 1758 | if (is_multicast_ether_addr(hdr->addr1) || |
1756 | sdata->dev->flags & IFF_PROMISC) | 1759 | sdata->dev->flags & IFF_PROMISC) |
1757 | return RX_CONTINUE; | 1760 | return RX_CONTINUE; |