[patch] madwifi-ng driver fix.



Recent madwifi-ng releases (since r1451 or so) have been busted.

The attached patch fixed it for me.

	Robert Love

diff -ur madwifi-ng-r1451-20060212/net80211/ieee80211_input.c madwifi-ng-r1451-20060212.mod/net80211/ieee80211_input.c
--- madwifi-ng-r1451-20060212/net80211/ieee80211_input.c	2006-02-03 12:28:14.000000000 +0100
+++ madwifi-ng-r1451-20060212.mod/net80211/ieee80211_input.c	2006-03-03 14:11:44.000000000 +0100
@@ -1199,8 +1199,12 @@
 			vap->iv_stats.is_rx_auth_fail++;
 			ieee80211_new_state(vap, IEEE80211_S_SCAN,
 				IEEE80211_SCAN_FAIL_STATUS);
-		} else
+		} else {
+			/* mark the port authorized */
+			if (ni->ni_authmode != IEEE80211_AUTH_8021X)
+				ieee80211_node_authorize(ni);
 			ieee80211_new_state(vap, IEEE80211_S_ASSOC, 0);
+		}
 		break;
 	case IEEE80211_M_MONITOR:
 		break;
@@ -3025,7 +3029,7 @@
 
 		rates = xrates = wme = NULL;
 		while (frm < efrm) {
-			IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1]);
+			/*IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1]);*/
 			switch (*frm) {
 			case IEEE80211_ELEMID_RATES:
 				rates = frm;
@@ -3040,8 +3044,6 @@
 			}
 			frm += frm[1] + 2;
 		}
-		if (frm > efrm)
-			return;
 		IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_MAXSIZE);
 		rate = ieee80211_setup_rates(ni, rates, xrates,
 			IEEE80211_F_DOSORT | IEEE80211_F_DOFRATE |


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]