]> granicus.if.org Git - php/commitdiff
Implement github PR #1736
authorAnatol Belski <ab@php.net>
Sat, 7 Jan 2017 14:36:14 +0000 (15:36 +0100)
committerAnatol Belski <ab@php.net>
Sat, 7 Jan 2017 14:36:14 +0000 (15:36 +0100)
This fixes leak issues on *BSD systems, as described in the PR.

ext/standard/config.m4
ext/standard/php_dns.h

index f9afff30e67a21f7a23b658039dae4d62c1bda96..102cbe5fdac6f43d3fb1afffe8afda72849ab907 100644 (file)
@@ -401,6 +401,7 @@ dnl Detect library functions needed by php dns_xxx functions
 dnl ext/standard/php_dns.h will collect these in a single define: HAVE_FULL_DNS_FUNCS
 dnl
 PHP_CHECK_FUNC(res_nsearch, resolv, bind, socket)
+PHP_CHECK_FUNC(res_ndestroy, resolv, bind, socket)
 PHP_CHECK_FUNC(dns_search, resolv, bind, socket)
 PHP_CHECK_FUNC(dn_expand, resolv, bind, socket)
 PHP_CHECK_FUNC(dn_skipname, resolv, bind, socket)
index 8e6931d45a1c4d7561f9e8adc70363cb77d6acf1..6f80d5d69fe16c598d310675b241c58eeac5c3f6 100644 (file)
 #elif defined(HAVE_RES_NSEARCH)
 #define php_dns_search(res, dname, class, type, answer, anslen) \
                        res_nsearch(res, dname, class, type, answer, anslen);
+#if HAVE_RES_NDESTROY
+#define php_dns_free_handle(res) \
+                       res_ndestroy(res); \
+                       php_dns_free_res(res)
+#else
 #define php_dns_free_handle(res) \
                        res_nclose(res); \
                        php_dns_free_res(res)
+#endif
 
 #elif defined(HAVE_RES_SEARCH)
 #define php_dns_search(res, dname, class, type, answer, anslen) \