Fix memory leaks on wpa_config_parse_string() error paths
hostapd configuration parser did not free the temporary buffer on some error paths. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
a0b728b7e2
commit
b2e32cde83
1 changed files with 5 additions and 4 deletions
|
@ -1679,6 +1679,7 @@ static int hs20_parse_osu_ssid(struct hostapd_bss_config *bss,
|
||||||
str = wpa_config_parse_string(pos, &slen);
|
str = wpa_config_parse_string(pos, &slen);
|
||||||
if (str == NULL || slen < 1 || slen > HOSTAPD_MAX_SSID_LEN) {
|
if (str == NULL || slen < 1 || slen > HOSTAPD_MAX_SSID_LEN) {
|
||||||
wpa_printf(MSG_ERROR, "Line %d: Invalid SSID '%s'", line, pos);
|
wpa_printf(MSG_ERROR, "Line %d: Invalid SSID '%s'", line, pos);
|
||||||
|
os_free(str);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1893,12 +1894,12 @@ static int hostapd_config_fill(struct hostapd_config *conf,
|
||||||
if (str == NULL || slen < 1 || slen > HOSTAPD_MAX_SSID_LEN) {
|
if (str == NULL || slen < 1 || slen > HOSTAPD_MAX_SSID_LEN) {
|
||||||
wpa_printf(MSG_ERROR, "Line %d: invalid SSID '%s'",
|
wpa_printf(MSG_ERROR, "Line %d: invalid SSID '%s'",
|
||||||
line, pos);
|
line, pos);
|
||||||
|
os_free(str);
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
|
||||||
os_memcpy(bss->ssid.ssid, str, slen);
|
|
||||||
bss->ssid.ssid_len = slen;
|
|
||||||
bss->ssid.ssid_set = 1;
|
|
||||||
}
|
}
|
||||||
|
os_memcpy(bss->ssid.ssid, str, slen);
|
||||||
|
bss->ssid.ssid_len = slen;
|
||||||
|
bss->ssid.ssid_set = 1;
|
||||||
os_free(str);
|
os_free(str);
|
||||||
} else if (os_strcmp(buf, "utf8_ssid") == 0) {
|
} else if (os_strcmp(buf, "utf8_ssid") == 0) {
|
||||||
bss->ssid.utf8_ssid = atoi(pos) > 0;
|
bss->ssid.utf8_ssid = atoi(pos) > 0;
|
||||||
|
|
Loading…
Reference in a new issue