Ticket #1270: madwifi-divzero.diff
| File madwifi-divzero.diff, 4.5 kB (added by mentor, 1 year ago) |
|---|
-
net80211/ieee80211_crypto.c
old new 529 529 KASSERT(cip != NULL, ("No cipher!")); 530 530 531 531 IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO, 532 "%s: %s keyix %u flags 0x%x mac %s tsc %llu len %u\n",532 "%s: %s keyix %u flags 0x%x mac %s tsc %llu len %u\n", 533 533 __func__, cip->ic_name, key->wk_keyix, 534 534 key->wk_flags, ether_sprintf(macaddr), 535 535 key->wk_keytsc, key->wk_keylen); -
net80211/ieee80211_node.c
old new 664 664 memcpy(ni->ni_essid, se->se_ssid + 2, ni->ni_esslen); 665 665 ni->ni_rstamp = se->se_rstamp; 666 666 ni->ni_tstamp.tsf = se->se_tstamp.tsf; 667 ni->ni_intval = se->se_intval;667 ni->ni_intval = IEEE80211_BINTVAL_SANITISE(se->se_intval); 668 668 ni->ni_capinfo = se->se_capinfo; 669 669 ni->ni_chan = se->se_chan; 670 670 ni->ni_timoff = se->se_timoff; … … 1219 1219 memcpy(ni->ni_essid, sp->ssid + 2, sp->ssid[1]); 1220 1220 IEEE80211_ADDR_COPY(ni->ni_bssid, wh->i_addr3); 1221 1221 memcpy(ni->ni_tstamp.data, sp->tstamp, sizeof(ni->ni_tstamp)); 1222 ni->ni_intval = sp->bintval;1222 ni->ni_intval = IEEE80211_BINTVAL_SANITISE(sp->bintval); 1223 1223 ni->ni_capinfo = sp->capinfo; 1224 1224 ni->ni_chan = ic->ic_curchan; 1225 1225 ni->ni_fhdwell = sp->fhdwell; -
net80211/ieee80211_scan.h
old new 130 130 u_int8_t bchan; 131 131 u_int8_t fhindex; 132 132 u_int8_t erp; 133 u_int 8_t bintval;133 u_int16_t bintval; 134 134 u_int8_t timoff; 135 135 u_int8_t *tim; 136 136 u_int8_t *tstamp; -
net80211/ieee80211_wireless.c
old new 1271 1271 case IW_POWER_UNICAST_R: 1272 1272 case IW_POWER_ALL_R: 1273 1273 case IW_POWER_ON: 1274 ic->ic_flags |= IEEE80211_F_PMGTON; 1275 1274 if (wrq->flags & IW_POWER_PERIOD) { 1275 if (IEEE80211_BINTVAL_VALID(wrq->value)) 1276 ic->ic_lintval = IEEE80211_MS_TO_TU(wrq->value); 1277 else 1278 return -EINVAL; 1279 } 1276 1280 if (wrq->flags & IW_POWER_TIMEOUT) 1277 1281 ic->ic_holdover = IEEE80211_MS_TO_TU(wrq->value); 1278 if (wrq->flags & IW_POWER_PERIOD)1279 ic->ic_lintval = IEEE80211_MS_TO_TU(wrq->value);1282 1283 ic->ic_flags |= IEEE80211_F_PMGTON; 1280 1284 break; 1281 1285 default: 1282 1286 return -EINVAL; … … 2359 2363 if (vap->iv_opmode != IEEE80211_M_HOSTAP && 2360 2364 vap->iv_opmode != IEEE80211_M_IBSS) 2361 2365 return -EINVAL; 2362 if (IEEE80211_BINTVAL_MIN <= value && 2363 value <= IEEE80211_BINTVAL_MAX) { 2366 if (IEEE80211_BINTVAL_VALID(value)) { 2364 2367 ic->ic_lintval = value; /* XXX multi-bss */ 2365 2368 retv = ENETRESET; /* requires restart */ 2366 2369 } else -
net80211/ieee80211_input.c
old new 2861 2861 IEEE80211_ADDR_COPY(ni->ni_bssid, wh->i_addr3); 2862 2862 memcpy(ni->ni_tstamp.data, scan.tstamp, 2863 2863 sizeof(ni->ni_tstamp)); 2864 ni->ni_intval = scan.bintval;2864 ni->ni_intval = IEEE80211_BINTVAL_SANITISE(scan.bintval); 2865 2865 ni->ni_capinfo = scan.capinfo; 2866 2866 ni->ni_chan = ic->ic_curchan; 2867 2867 ni->ni_fhdwell = scan.fhdwell; … … 3285 3285 ni->ni_rssi = rssi; 3286 3286 ni->ni_rstamp = rstamp; 3287 3287 ni->ni_last_rx = jiffies; 3288 ni->ni_intval = bintval;3288 ni->ni_intval = IEEE80211_BINTVAL_SANITISE(bintval); 3289 3289 ni->ni_capinfo = capinfo; 3290 3290 ni->ni_chan = ic->ic_curchan; 3291 3291 ni->ni_fhdwell = vap->iv_bss->ni_fhdwell; -
net80211/ieee80211_var.h
old new 63 63 #define IEEE80211_BINTVAL_MAX 500 /* max beacon interval (TU's) */ 64 64 #define IEEE80211_BINTVAL_MIN 25 /* min beacon interval (TU's) */ 65 65 #define IEEE80211_BINTVAL_DEFAULT 100 /* default beacon interval (TU's) */ 66 #define IEEE80211_BINTVAL_VALID(_bi) \ 67 ((IEEE80211_BINTVAL_MIN <= (_bi)) && \ 68 ((_bi) <= IEEE80211_BINTVAL_MAX)) 69 #define IEEE80211_BINTVAL_SANITISE(_bi) \ 70 (IEEE80211_BINTVAL_VALID(_bi) ? \ 71 (_bi) : IEEE80211_BINTVAL_DEFAULT) 66 72 67 73 #define IEEE80211_BGSCAN_INTVAL_MIN 15 /* min bg scan intvl (secs) */ 68 74 #define IEEE80211_BGSCAN_INTVAL_DEFAULT (5*60) /* default bg scan intvl */
