diff options
author | monthadar <monthadar@FreeBSD.org> | 2013-02-07 21:30:58 +0000 |
---|---|---|
committer | monthadar <monthadar@FreeBSD.org> | 2013-02-07 21:30:58 +0000 |
commit | 6c23af63de7b1a83f8b21ce7f7f00c4adf0d98dd (patch) | |
tree | 8c926541db078175b7a7dc4e3c2a04e4a7cbb12e /sys/net80211/ieee80211_hwmp.c | |
parent | ecd76b4133bbb8278f5c7367cddbccefa22f4d96 (diff) | |
download | FreeBSD-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/ieee80211_hwmp.c')
-rw-r--r-- | sys/net80211/ieee80211_hwmp.c | 2 |
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) { |