Close dtls_fd on error returns from connect_dtls_socket()
authorDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 26 Sep 2012 19:26:04 +0000 (20:26 +0100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 26 Sep 2012 19:34:40 +0000 (20:34 +0100)
Spotted by Coverity.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
dtls.c

diff --git a/dtls.c b/dtls.c
index 2e5b48b..9c21a3f 100644 (file)
--- a/dtls.c
+++ b/dtls.c
@@ -544,11 +544,13 @@ int connect_dtls_socket(struct openconnect_info *vpninfo)
                                     _("Unknown protocol family %d. Cannot do DTLS\n"),
                                     vpninfo->peer_addr->sa_family);
                        vpninfo->dtls_attempt_period = 0;
+                       close(dtls_fd);
                        return -EINVAL;
                }
 
                if (bind(dtls_fd, (struct sockaddr *)&dtls_bind_addr, dtls_bind_addrlen)) {
                        perror(_("Bind UDP socket for DTLS"));
+                       close(dtls_fd);
                        return -EINVAL;
                }
        }