]> git.meshlink.io Git - meshlink/blobdiff - src/meshlink.c
Fix socket leak every time meshlink_invite() is called.
[meshlink] / src / meshlink.c
index 8da56922aa5735828f0e598773c613fb3b13d645..1bb403f33d4cbfc7929f29ccb46ede5849a079ff 100644 (file)
@@ -226,6 +226,7 @@ static bool getlocaladdrname(char *destaddr, char *host, socklen_t hostlen) {
        }
 
        if(connect(sock, rai->ai_addr, rai->ai_addrlen) && !sockwouldblock(errno)) {
+               closesocket(sock);
                freeaddrinfo(rai);
                return false;
        }
@@ -236,9 +237,12 @@ static bool getlocaladdrname(char *destaddr, char *host, socklen_t hostlen) {
        socklen_t sl = sizeof(sn);
 
        if(getsockname(sock, (struct sockaddr *)&sn, &sl)) {
+               closesocket(sock);
                return false;
        }
 
+       closesocket(sock);
+
        if(getnameinfo((struct sockaddr *)&sn, sl, host, hostlen, NULL, 0, NI_NUMERICHOST | NI_NUMERICSERV)) {
                return false;
        }