Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 195705
Collapse All | Expand All

(-)madwifi-0.9.3.2/net80211/_ieee80211.h (+2 lines)
Lines 225-230 struct ieee80211_channel { Link Here
225
 */
225
 */
226
#define	IEEE80211_RATE_SIZE	8		/* 802.11 standard */
226
#define	IEEE80211_RATE_SIZE	8		/* 802.11 standard */
227
#define	IEEE80211_RATE_MAXSIZE	15		/* max rates we'll handle */
227
#define	IEEE80211_RATE_MAXSIZE	15		/* max rates we'll handle */
228
#define	IEEE80211_SANITISE_RATESIZE(_rsz) \
229
	((_rsz > IEEE80211_RATE_MAXSIZE) ? IEEE80211_RATE_MAXSIZE : _rsz)
228
230
229
struct ieee80211_rateset {
231
struct ieee80211_rateset {
230
	u_int8_t rs_nrates;
232
	u_int8_t rs_nrates;
(-)madwifi-0.9.3.2/net80211/ieee80211_scan_sta.c (-7 / +8 lines)
Lines 229-250 sta_add(struct ieee80211_scan_state *ss, Link Here
229
	IEEE80211_ADDR_COPY(se->base.se_macaddr, macaddr);
229
	IEEE80211_ADDR_COPY(se->base.se_macaddr, macaddr);
230
	TAILQ_INSERT_TAIL(&st->st_entry, se, se_list);
230
	TAILQ_INSERT_TAIL(&st->st_entry, se, se_list);
231
	LIST_INSERT_HEAD(&st->st_hash[hash], se, se_hash);
231
	LIST_INSERT_HEAD(&st->st_hash[hash], se, se_hash);
232
232
found:
233
found:
233
	ise = &se->base;
234
	ise = &se->base;
235
234
	/* XXX ap beaconing multiple ssid w/ same bssid */
236
	/* XXX ap beaconing multiple ssid w/ same bssid */
235
	if (sp->ssid[1] != 0 &&
237
	if (sp->ssid[1] != 0 &&
236
	    (ISPROBE(subtype) || ise->se_ssid[1] == 0))
238
	    (ISPROBE(subtype) || ise->se_ssid[1] == 0))
237
		memcpy(ise->se_ssid, sp->ssid, 2 + sp->ssid[1]);
239
		memcpy(ise->se_ssid, sp->ssid, 2 + sp->ssid[1]);
238
	KASSERT(sp->rates[1] <= IEEE80211_RATE_MAXSIZE,
240
239
		("rate set too large: %u", sp->rates[1]));
241
	memcpy(ise->se_rates, sp->rates, 
240
	memcpy(ise->se_rates, sp->rates, 2 + sp->rates[1]);
242
			2 + IEEE80211_SANITISE_RATESIZE(sp->rates[1]));
241
	if (sp->xrates != NULL) {
243
	if (sp->xrates != NULL) {
242
		/* XXX validate xrates[1] */
244
		memcpy(ise->se_xrates, sp->xrates, 
243
		KASSERT(sp->xrates[1] <= IEEE80211_RATE_MAXSIZE,
245
				2 + IEEE80211_SANITISE_RATESIZE(sp->xrates[1]));
244
			("xrate set too large: %u", sp->xrates[1]));
245
		memcpy(ise->se_xrates, sp->xrates, 2 + sp->xrates[1]);
246
	} else
246
	} else
247
		ise->se_xrates[1] = 0;
247
		ise->se_xrates[1] = 0;
248
248
	IEEE80211_ADDR_COPY(ise->se_bssid, wh->i_addr3);
249
	IEEE80211_ADDR_COPY(ise->se_bssid, wh->i_addr3);
249
	/*
250
	/*
250
	 * Record rssi data using extended precision LPF filter.
251
	 * Record rssi data using extended precision LPF filter.

Return to bug 195705