Ticket #241: madwifi-ng-241-new.diff
| File madwifi-ng-241-new.diff, 2.3 kB (added by charles, 6 years ago) |
|---|
-
madwifi-ng/net80211/ieee80211_ioctl.h
old new 280 280 struct ieee80211req_wpaie { 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 285 286 /* -
madwifi-ng/net80211/ieee80211_wireless.c
old new 3231 3231 ielen = sizeof(wpaie.wpa_ie); 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)) ? 3236 3242 -EFAULT : 0); … … 3271 3277 scan_space(const struct ieee80211_scan_entry *se, int *ielen) 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]; 3276 3284 if (se->se_wme_ie != NULL) … … 3325 3333 cp = (u_int8_t *)(sr + 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]); 3330 3342 cp += 2 + se->se_wpa_ie[1]; … … 3387 3399 sta_space(const struct ieee80211_node *ni, size_t *ielen) 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]; 3392 3406 if (ni->ni_wme_ie != NULL) … … 3477 3491 si->isi_inact = (si->isi_inact - ni->ni_inact) * IEEE80211_INACT_WAIT; 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]); 3482 3500 cp += 2 + ni->ni_wpa_ie[1];
