From f2d2943f775251e58d22038f5f5bbfb152b971b8 Mon Sep 17 00:00:00 2001 From: "Alan T. DeKok" Date: Thu, 10 Nov 2022 17:23:12 +0000 Subject: [PATCH] close fd on error --- src/main/listen.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/listen.c b/src/main/listen.c index e309d15276..3af6842145 100644 --- a/src/main/listen.c +++ b/src/main/listen.c @@ -3073,6 +3073,8 @@ rad_listen_t *proxy_new_listener(TALLOC_CTX *ctx, home_server_t *home, uint16_t sock->ssn = tls_new_client_session(sock, home->tls, this->fd, &sock->certs); if (!sock->ssn) { ERROR("(TLS) Failed opening connection on proxy socket '%s'", buffer); +error: + close(this->fd); home->last_failed_open = now; listen_free(&this); return NULL; @@ -3095,17 +3097,13 @@ rad_listen_t *proxy_new_listener(TALLOC_CTX *ctx, home_server_t *home, uint16_t &sizeof_src) < 0) { ERROR("Failed getting socket name for '%s': %s", buffer, fr_syserror(errno)); - home->last_failed_open = now; - listen_free(&this); - return NULL; + goto error; } if (!fr_sockaddr2ipaddr(&src, sizeof_src, &sock->my_ipaddr, &sock->my_port)) { ERROR("Socket has unsupported address family for '%s'", buffer); - home->last_failed_open = now; - listen_free(&this); - return NULL; + goto error; } this->print(this, buffer, sizeof(buffer)); -- 2.47.3