u8 last_op_class = 0;
int res;
- if (!wpa_s->last_scan_freqs || !wpa_s->num_last_scan_freqs)
+ len = int_array_len(wpa_s->last_scan_freqs);
+ if (!len)
return NULL;
- len = wpa_s->num_last_scan_freqs * 8;
- str = os_zalloc(len);
+ str = os_zalloc(len * 8);
if (!str)
return NULL;
end = str + len;
pos = str;
- for (i = 0; i < wpa_s->num_last_scan_freqs; i++) {
+ for (i = 0; wpa_s->last_scan_freqs[i]; i++) {
enum hostapd_hw_mode mode;
u8 op_class, channel;
os_free(wpa_s->last_scan_freqs);
wpa_s->last_scan_freqs = NULL;
- wpa_s->num_last_scan_freqs = 0;
if (own_request && data &&
data->scan_info.freqs && data->scan_info.num_freqs) {
- wpa_s->last_scan_freqs = os_malloc(sizeof(int) *
- data->scan_info.num_freqs);
+ wpa_s->last_scan_freqs =
+ os_malloc(sizeof(int) *
+ (data->scan_info.num_freqs + 1));
if (wpa_s->last_scan_freqs) {
os_memcpy(wpa_s->last_scan_freqs,
data->scan_info.freqs,
sizeof(int) * data->scan_info.num_freqs);
- wpa_s->num_last_scan_freqs = data->scan_info.num_freqs;
+ wpa_s->last_scan_freqs[data->scan_info.num_freqs] = 0;
}
}
struct wpa_ssid_value *ssids_from_scan_req;
unsigned int num_ssids_from_scan_req;
- int *last_scan_freqs;
- unsigned int num_last_scan_freqs;
+ int *last_scan_freqs; /* int_array */
unsigned int suitable_network;
unsigned int no_suitable_network;