Author: monthadar
Date: Thu Feb 7 21:30:58 2013
New Revision: 246518
URL: http://svnweb.freebsd.org/changeset/base/246518
Log:
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)
Modified:
head/sys/net80211/ieee80211_hwmp.c
Modified: head/sys/net80211/ieee80211_hwmp.c
==============================================================================
--- head/sys/net80211/ieee80211_hwmp.c Thu Feb 7 21:30:29 2013
(r246517)
+++ head/sys/net80211/ieee80211_hwmp.c Thu Feb 7 21:30:58 2013
(r246518)
@@ -1570,7 +1570,7 @@ hwmp_recv_perr(struct ieee80211vap *vap,
"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) {
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"