Changeset 1453
- Timestamp:
- 02/19/06 18:19:27 (5 years ago)
- Files:
-
- trunk/net80211/ieee80211_ioctl.h (modified) (1 diff)
- trunk/net80211/ieee80211_wireless.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/net80211/ieee80211_ioctl.h
r1441 r1453 281 281 u_int8_t wpa_macaddr[IEEE80211_ADDR_LEN]; 282 282 u_int8_t wpa_ie[IEEE80211_MAX_OPT_IE]; 283 u_int8_t rsn_ie[IEEE80211_MAX_OPT_IE]; 283 284 }; 284 285 trunk/net80211/ieee80211_wireless.c
r1452 r1453 3232 3232 memcpy(wpaie.wpa_ie, ni->ni_wpa_ie, ielen); 3233 3233 } 3234 if (ni->ni_rsn_ie != NULL) { 3235 int ielen = ni->ni_rsn_ie[1] + 2; 3236 if (ielen > sizeof(wpaie.rsn_ie)) 3237 ielen = sizeof(wpaie.rsn_ie); 3238 memcpy(wpaie.rsn_ie, ni->ni_rsn_ie, ielen); 3239 } 3234 3240 ieee80211_free_node(ni); 3235 3241 return (copy_to_user(iwr->u.data.pointer, &wpaie, sizeof(wpaie)) ? … … 3272 3278 { 3273 3279 *ielen = 0; 3280 if (se->se_rsn_ie != NULL) 3281 *ielen += 2 + se->se_rsn_ie[1]; 3274 3282 if (se->se_wpa_ie != NULL) 3275 3283 *ielen += 2 + se->se_wpa_ie[1]; … … 3326 3334 memcpy(cp, se->se_ssid + 2, sr->isr_ssid_len); 3327 3335 cp += sr->isr_ssid_len; 3336 if (se->se_rsn_ie != NULL) { 3337 memcpy(cp, se->se_rsn_ie, 2 + se->se_rsn_ie[1]); 3338 cp += 2 + se->se_rsn_ie[1]; 3339 } 3328 3340 if (se->se_wpa_ie != NULL) { 3329 3341 memcpy(cp, se->se_wpa_ie, 2 + se->se_wpa_ie[1]); … … 3388 3400 { 3389 3401 *ielen = 0; 3402 if (ni->ni_rsn_ie != NULL) 3403 *ielen += 2+ni->ni_rsn_ie[1]; 3390 3404 if (ni->ni_wpa_ie != NULL) 3391 3405 *ielen += 2+ni->ni_wpa_ie[1]; … … 3478 3492 3479 3493 cp = (u_int8_t *)(si+1); 3494 if (ni->ni_rsn_ie != NULL) { 3495 memcpy(cp, ni->ni_rsn_ie, 2 + ni->ni_rsn_ie[1]); 3496 cp += 2 + ni->ni_rsn_ie[1]; 3497 } 3480 3498 if (ni->ni_wpa_ie != NULL) { 3481 3499 memcpy(cp, ni->ni_wpa_ie, 2 + ni->ni_wpa_ie[1]);
