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