tony2001 Tue Oct 25 10:56:49 2005 EDT Modified files: /php-src/ext/standard dns.c Log: apply workaround for the leak only when GLIBC is used http://cvs.php.net/diff.php/php-src/ext/standard/dns.c?r1=1.75&r2=1.76&ty=u Index: php-src/ext/standard/dns.c diff -u php-src/ext/standard/dns.c:1.75 php-src/ext/standard/dns.c:1.76 --- php-src/ext/standard/dns.c:1.75 Tue Oct 25 04:19:11 2005 +++ php-src/ext/standard/dns.c Tue Oct 25 10:56:48 2005 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: dns.c,v 1.75 2005/10/25 08:19:11 tony2001 Exp $ */ +/* $Id: dns.c,v 1.76 2005/10/25 14:56:48 tony2001 Exp $ */ /* {{{ includes */ #include "php.h" @@ -374,6 +374,9 @@ * res_thread_freeres() in glibc/resolv/res_init.c * __libc_res_nsend() in resolv/res_send.c * */ + +#ifdef __GLIBC__ +#define php_dns_free_res(__res__) _php_dns_free_res(__res__) static void _php_dns_free_res(struct __res_state res) { /* {{{ */ int ns; for (ns = 0; ns < MAXNS; ns++) { @@ -383,6 +386,9 @@ } } } /* }}} */ +#else +#define php_dns_free_res(__res__) +#endif /* {{{ php_parserr */ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int store, zval **subarray) @@ -771,7 +777,7 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, "res_nmkquery() failed"); zval_dtor(return_value); res_nclose(&res); - _php_dns_free_res(res); + php_dns_free_res(res); RETURN_FALSE; } n = res_nsend(&res, buf.qb2, n, answer.qb2, sizeof answer); @@ -779,7 +785,7 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, "res_nsend() failed"); zval_dtor(return_value); res_nclose(&res); - _php_dns_free_res(res); + php_dns_free_res(res); RETURN_FALSE; } @@ -798,7 +804,7 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to parse DNS data received"); zval_dtor(return_value); res_nclose(&res); - _php_dns_free_res(res); + php_dns_free_res(res); RETURN_FALSE; } cp += n + QFIXEDSZ; @@ -814,7 +820,7 @@ } } res_nclose(&res); - _php_dns_free_res(res); + php_dns_free_res(res); } }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php