From: Jouni Malinen Date: Sat, 15 Feb 2014 14:45:57 +0000 (+0200) Subject: EAP-SIM DB: Remove client socket file on connect() error X-Git-Tag: hostap_2_2~848 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a0ac572611bcd7f95d7d318cdd2f20582c75e828;p=thirdparty%2Fhostap.git 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 --- diff --git a/src/eap_server/eap_sim_db.c b/src/eap_server/eap_sim_db.c index 45660ed7d..bc2cbe5bc 100644 --- a/src/eap_server/eap_sim_db.c +++ b/src/eap_server/eap_sim_db.c @@ -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++); os_free(data->local_sock); 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) { wpa_printf(MSG_INFO, "bind(eap_sim_db): %s", strerror(errno)); 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)); close(data->sock); data->sock = -1; + unlink(data->local_sock); + os_free(data->local_sock); + data->local_sock = NULL; return -1; }