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) {
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to