tony2001 Tue Mar 11 10:27:10 2008 UTC Modified files: (Branch: PHP_5_3) /php-src/main network.c Log: MFH: fix segfault - error_string may be NULL, in this case we have to follow the old behavior http://cvs.php.net/viewvc.cgi/php-src/main/network.c?r1=1.118.2.2.2.6.2.5&r2=1.118.2.2.2.6.2.6&diff_format=u Index: php-src/main/network.c diff -u php-src/main/network.c:1.118.2.2.2.6.2.5 php-src/main/network.c:1.118.2.2.2.6.2.6 --- php-src/main/network.c:1.118.2.2.2.6.2.5 Mon Mar 10 19:54:47 2008 +++ php-src/main/network.c Tue Mar 11 10:27:10 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: network.c,v 1.118.2.2.2.6.2.5 2008/03/10 19:54:47 andrey Exp $ */ +/* $Id: network.c,v 1.118.2.2.2.6.2.6 2008/03/11 10:27:10 tony2001 Exp $ */ /*#define DEBUG_MAIN_NETWORK 1*/ @@ -205,12 +205,20 @@ # endif if ((n = getaddrinfo(host, NULL, &hints, &res))) { - spprintf(error_string, 0, "php_network_getaddresses: getaddrinfo failed: %s", PHP_GAI_STRERROR(n)); - php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", *error_string); + if (error_string) { + spprintf(error_string, 0, "php_network_getaddresses: getaddrinfo failed: %s", PHP_GAI_STRERROR(n)); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", *error_string); + } else { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "php_network_getaddresses: getaddrinfo failed: %s", PHP_GAI_STRERROR(n)); + } return 0; } else if (res == NULL) { - spprintf(error_string, 0, "php_network_getaddresses: getaddrinfo failed (null result pointer) errno=%d", errno); - php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", *error_string); + if (error_string) { + spprintf(error_string, 0, "php_network_getaddresses: getaddrinfo failed (null result pointer) errno=%d", errno); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", *error_string); + } else { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "php_network_getaddresses: getaddrinfo failed (null result pointer)"); + } return 0; } @@ -234,8 +242,12 @@ /* XXX NOT THREAD SAFE (is safe under win32) */ host_info = gethostbyname(host); if (host_info == NULL) { - spprintf(error_string, 0, "php_network_getaddresses: gethostbyname failed. errno=%d", errno); - php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", *error_string); + if (error_string) { + spprintf(error_string, 0, "php_network_getaddresses: gethostbyname failed. errno=%d", errno); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", *error_string); + } else { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "php_network_getaddresses: gethostbyname failed"); + } return 0; } in = *((struct in_addr *) host_info->h_addr);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php