EAP-SIM DB: Remove client socket file on connect() error
If the connection from hostapd authentication server to hlr_auc_gw fails due to hlr_auc_gw not running yet, the local socket file was left behind. Delete the socket file on connect() failure path. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
4fcee244b9
commit
a0ac572611
1 changed files with 8 additions and 0 deletions
|
@ -639,6 +639,11 @@ static int eap_sim_db_open_socket(struct eap_sim_db_data *data)
|
||||||
"/tmp/eap_sim_db_%d-%d", getpid(), counter++);
|
"/tmp/eap_sim_db_%d-%d", getpid(), counter++);
|
||||||
os_free(data->local_sock);
|
os_free(data->local_sock);
|
||||||
data->local_sock = os_strdup(addr.sun_path);
|
data->local_sock = os_strdup(addr.sun_path);
|
||||||
|
if (data->local_sock == NULL) {
|
||||||
|
close(data->sock);
|
||||||
|
data->sock = -1;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
if (bind(data->sock, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
|
if (bind(data->sock, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
|
||||||
wpa_printf(MSG_INFO, "bind(eap_sim_db): %s", strerror(errno));
|
wpa_printf(MSG_INFO, "bind(eap_sim_db): %s", strerror(errno));
|
||||||
close(data->sock);
|
close(data->sock);
|
||||||
|
@ -657,6 +662,9 @@ static int eap_sim_db_open_socket(struct eap_sim_db_data *data)
|
||||||
os_strlen(addr.sun_path));
|
os_strlen(addr.sun_path));
|
||||||
close(data->sock);
|
close(data->sock);
|
||||||
data->sock = -1;
|
data->sock = -1;
|
||||||
|
unlink(data->local_sock);
|
||||||
|
os_free(data->local_sock);
|
||||||
|
data->local_sock = NULL;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue