On Mon, 2007-08-06 at 13:05 -0400, John W. Linville wrote: > --- a/net/mac80211/ieee80211.c > +++ b/net/mac80211/ieee80211.c > @@ -3030,9 +3030,10 @@ ieee80211_rx_h_data(struct ieee80211_txrx_data *rx) > memcpy(dst, hdr->addr1, ETH_ALEN); > memcpy(src, hdr->addr3, ETH_ALEN); > > - if (sdata->type != IEEE80211_IF_TYPE_STA) { > + if (sdata->type != IEEE80211_IF_TYPE_STA || > + (is_multicast_ether_addr(dst) && > + !compare_ether_addr(src, dev->dev_addr))) > return TXRX_DROP; I can confirm that this works (applies if you s/ieee80211.c/rx.c/) for IPv6 link local addresses, and it's definitely the right thing to do here. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part