diff options
| author | Anatol Belski <ab@php.net> | 2017-01-07 15:36:14 +0100 |
|---|---|---|
| committer | Anatol Belski <ab@php.net> | 2017-01-07 15:36:14 +0100 |
| commit | 486fc0424ab1664831ea098546e14dbf2809c637 (patch) | |
| tree | 65cb4b923235d0c3c8bb227327ce6f0a775ec150 | |
| parent | 80a5ae4f5389e66fe4bd71b54c7fb8fca06d831b (diff) | |
| download | php-git-486fc0424ab1664831ea098546e14dbf2809c637.tar.gz | |
Implement github PR #1736
This fixes leak issues on *BSD systems, as described in the PR.
| -rw-r--r-- | ext/standard/config.m4 | 1 | ||||
| -rw-r--r-- | ext/standard/php_dns.h | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/ext/standard/config.m4 b/ext/standard/config.m4 index f9afff30e6..102cbe5fda 100644 --- a/ext/standard/config.m4 +++ b/ext/standard/config.m4 @@ -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) diff --git a/ext/standard/php_dns.h b/ext/standard/php_dns.h index 8e6931d45a..6f80d5d69f 100644 --- a/ext/standard/php_dns.h +++ b/ext/standard/php_dns.h @@ -32,9 +32,15 @@ #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) \ |
