From 486fc0424ab1664831ea098546e14dbf2809c637 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Sat, 7 Jan 2017 15:36:14 +0100 Subject: [PATCH] Implement github PR #1736 This fixes leak issues on *BSD systems, as described in the PR. --- ext/standard/config.m4 | 1 + ext/standard/php_dns.h | 6 ++++++ 2 files changed, 7 insertions(+) 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) \ -- 2.40.0