Patchwork [3.5.y.z,extended,stable] Patch "mac80211: Only process mesh config header on frames that" has been added to staging queue

mail settings
Submitter Herton Ronaldo Krzesinski
Date Dec. 5, 2012, 10:29 p.m.
Message ID <>
Download mbox | patch
Permalink /patch/203987/
State New
Headers show


Herton Ronaldo Krzesinski - Dec. 5, 2012, 10:29 p.m.
This is a note to let you know that I have just added a patch titled

    mac80211: Only process mesh config header on frames that

to the linux-3.5.y-queue branch of the 3.5.y.z extended stable tree 
which can be found at:;a=shortlog;h=refs/heads/linux-3.5.y-queue

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.5.y.z tree, see



From 78f74332b671f5dc3c0622265a6e649ac95f7462 Mon Sep 17 00:00:00 2001
From: Javier Cardona <>
Date: Wed, 24 Oct 2012 12:43:30 -0700
Subject: [PATCH] mac80211: Only process mesh config header on frames that
X-Extended-Stable: 3.5

commit 555cb715be8ef98b8ec362b23dfc254d432a35b1 upstream.

Doing otherwise is wrong, and may wreak havoc on the mpp tables,
specially if the frame is encrypted.

Reported-by: Chaoxing Lin <>
Signed-off-by: Javier Cardona <>
Signed-off-by: Johannes Berg <>
Signed-off-by: Herton Ronaldo Krzesinski <>
 net/mac80211/rx.c |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)



diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 965e6ec..33c49d5 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1900,7 +1900,8 @@  ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
 	    mesh_rmc_check(hdr->addr3, mesh_hdr, rx->sdata))
 		return RX_DROP_MONITOR;

-	if (!ieee80211_is_data(hdr->frame_control))
+	if (!ieee80211_is_data(hdr->frame_control) ||
+	    !(status->rx_flags & IEEE80211_RX_RA_MATCH))
 		return RX_CONTINUE;

 	if (!mesh_hdr->ttl)
@@ -1944,9 +1945,6 @@  ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
 	skb_set_queue_mapping(skb, q);

-	if (!(status->rx_flags & IEEE80211_RX_RA_MATCH))
-		goto out;
 	if (!--mesh_hdr->ttl) {
 		IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, dropped_frames_ttl);
 		return RX_DROP_MONITOR;