summaryrefslogtreecommitdiffstats
path: root/sys/net80211
diff options
context:
space:
mode:
authormonthadar <monthadar@FreeBSD.org>2013-02-07 21:30:58 +0000
committermonthadar <monthadar@FreeBSD.org>2013-02-07 21:30:58 +0000
commit6c23af63de7b1a83f8b21ce7f7f00c4adf0d98dd (patch)
tree8c926541db078175b7a7dc4e3c2a04e4a7cbb12e /sys/net80211
parentecd76b4133bbb8278f5c7367cddbccefa22f4d96 (diff)
downloadFreeBSD-src-6c23af63de7b1a83f8b21ce7f7f00c4adf0d98dd.zip
FreeBSD-src-6c23af63de7b1a83f8b21ce7f7f00c4adf0d98dd.tar.gz
Mesh HWMP PERR bug fixes.
* When calling ieee80211_mesh_rt_flush_peer, the rt->rt_dest argument should not be passed because it can get freed before invalidating the other routes that depends on it to compare with next_hop. Use PERR_DADDR(i) instead; Approved by: adrian (mentor)
Diffstat (limited to 'sys/net80211')
-rw-r--r--sys/net80211/ieee80211_hwmp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_hwmp.c b/sys/net80211/ieee80211_hwmp.c
index 707a790..206a4a46 100644
--- a/sys/net80211/ieee80211_hwmp.c
+++ b/sys/net80211/ieee80211_hwmp.c
@@ -1570,7 +1570,7 @@ hwmp_recv_perr(struct ieee80211vap *vap, struct ieee80211_node *ni,
"PERR, unknown reason code %u\n", PERR_DFLAGS(i));
goto done; /* XXX: stats?? */
}
- ieee80211_mesh_rt_flush_peer(vap, rt->rt_dest);
+ ieee80211_mesh_rt_flush_peer(vap, PERR_DADDR(i));
KASSERT(j < 32, ("PERR, error ndest >= 32 (%u)", j));
}
if (j == 0) {
OpenPOWER on IntegriCloud