]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - net/mac80211/ieee80211.c
mac80211: filter locally-originated multicast frames
[karo-tx-linux.git] / net / mac80211 / ieee80211.c
index ff2172ffd8611758ba00efa2abc349892ca11015..2e699d6ebc7d794e1dd2e645ba5479d36ca29e7b 100644 (file)
@@ -2836,9 +2836,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;
-               }
                break;
        case 0:
                /* DA SA BSSID */