hostapd: Fix multi-BSS configuration file parsing regression
Commit ebd79f07c4
broke parsing of
configuration files that use the bss parameter to specify another BSS
entry. This resulted in crashing the process with NULL pointer
dereference since the new hostapd_config::bss design requires this
function to allocate a new hostapd_bss_config structure.
Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
e4ba031531
commit
2fe210cebb
1 changed files with 5 additions and 3 deletions
|
@ -762,16 +762,18 @@ static int hostapd_config_bss(struct hostapd_config *conf, const char *ifname)
|
||||||
}
|
}
|
||||||
conf->bss = all;
|
conf->bss = all;
|
||||||
|
|
||||||
bss = conf->bss[conf->num_bss];
|
bss = os_zalloc(sizeof(*bss));
|
||||||
os_memset(bss, 0, sizeof(*bss));
|
if (bss == NULL)
|
||||||
|
return -1;
|
||||||
bss->radius = os_zalloc(sizeof(*bss->radius));
|
bss->radius = os_zalloc(sizeof(*bss->radius));
|
||||||
if (bss->radius == NULL) {
|
if (bss->radius == NULL) {
|
||||||
wpa_printf(MSG_ERROR, "Failed to allocate memory for "
|
wpa_printf(MSG_ERROR, "Failed to allocate memory for "
|
||||||
"multi-BSS RADIUS data");
|
"multi-BSS RADIUS data");
|
||||||
|
os_free(bss);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
conf->num_bss++;
|
conf->bss[conf->num_bss++] = bss;
|
||||||
conf->last_bss = bss;
|
conf->last_bss = bss;
|
||||||
|
|
||||||
hostapd_config_defaults_bss(bss);
|
hostapd_config_defaults_bss(bss);
|
||||||
|
|
Loading…
Reference in a new issue