]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - lhnet.c
fix an addrinfo leak when getaddrinfo returns an addrinfo that is not
[xonotic/darkplaces.git] / lhnet.c
diff --git a/lhnet.c b/lhnet.c
index 00a6c78b935b77e05dcd0332f8e242aa9d6c7051..dfb0005071f9f0dccfe2ed88f48ca8f9eda30787 100644 (file)
--- a/lhnet.c
+++ b/lhnet.c
@@ -3,6 +3,8 @@
 
 #ifdef WIN32
 // Windows XP or higher is required for getaddrinfo, but the inclusion of wspiapi provides fallbacks for older versions
+#define _WIN32_WINNT 0x0501
+#include <winsock2.h>
 #include <ws2tcpip.h>
 #include <wspiapi.h>
 #endif
@@ -149,7 +151,10 @@ int LHNETADDRESS_Resolve(lhnetaddressnative_t *address, const char *name, int po
        if (err != 0 || addrinf == NULL)
                return 0;
        if (addrinf->ai_addr->sa_family != AF_INET6 && addrinf->ai_addr->sa_family != AF_INET)
+       {
+               freeaddrinfo (addrinf);
                return 0;
+       }
 
        // great it worked
        if (addrinf->ai_addr->sa_family == AF_INET6)