Don't contraint size of Supported Rates ie as specified in 11g standard,
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Mon, 26 Mar 2007 11:08:30 +0000 (11:08 +0000)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Mon, 26 Mar 2007 11:08:30 +0000 (11:08 +0000)
since for some field pre-11g implementation, Supported Rates ie is used
to carry all BSS supported rates, whose size exceeds 8.

Pointed-out-by: Sam Leffler
sys/netproto/802_11/wlan/ieee80211_input.c

index 42ac876..b960100 100644 (file)
@@ -30,7 +30,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/net80211/ieee80211_input.c,v 1.62.2.14 2006/09/02 15:16:12 sam Exp $
- * $DragonFly: src/sys/netproto/802_11/wlan/ieee80211_input.c,v 1.18 2007/03/25 08:10:51 sephe Exp $
+ * $DragonFly: src/sys/netproto/802_11/wlan/ieee80211_input.c,v 1.19 2007/03/26 11:08:30 sephe Exp $
  */
 
 #include <sys/param.h>
@@ -1909,7 +1909,7 @@ ieee80211_recv_mgmt(struct ieee80211com *ic, struct mbuf *m0,
                        }
                        frm += frm[1] + 2;
                }
-               IEEE80211_VERIFY_ELEMENT(scan.rates, IEEE80211_RATE_SIZE);
+               IEEE80211_VERIFY_ELEMENT(scan.rates, IEEE80211_RATE_MAXSIZE);
                if (scan.xrates != NULL) {
                        IEEE80211_VERIFY_ELEMENT(scan.xrates,
                                IEEE80211_RATE_MAXSIZE - scan.rates[1]);
@@ -2125,7 +2125,7 @@ ieee80211_recv_mgmt(struct ieee80211com *ic, struct mbuf *m0,
                        }
                        frm += frm[1] + 2;
                }
-               IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_SIZE);
+               IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_MAXSIZE);
                if (xrates != NULL) {
                        IEEE80211_VERIFY_ELEMENT(xrates,
                                IEEE80211_RATE_MAXSIZE - rates[1]);
@@ -2319,7 +2319,7 @@ ieee80211_recv_mgmt(struct ieee80211com *ic, struct mbuf *m0,
                        }
                        frm += frm[1] + 2;
                }
-               IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_SIZE);
+               IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_MAXSIZE);
                if (xrates != NULL) {
                        IEEE80211_VERIFY_ELEMENT(xrates,
                                IEEE80211_RATE_MAXSIZE - rates[1]);
@@ -2512,7 +2512,7 @@ ieee80211_recv_mgmt(struct ieee80211com *ic, struct mbuf *m0,
                        }
                        frm += frm[1] + 2;
                }
-               IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_SIZE);
+               IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_MAXSIZE);
                if (xrates != NULL) {
                        IEEE80211_VERIFY_ELEMENT(xrates,
                                IEEE80211_RATE_MAXSIZE - rates[1]);