iliaa Mon May 4 13:12:35 2009 UTC
Modified files: (Branch: PHP_5_2)
/php-src NEWS
/php-src/main network.c
Log:
MFB: Fixed bug #48131 (Don't try to bind ipv4 addresses to ipv6 ips via
bindto)
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.1487&r2=1.2027.2.547.2.1488&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.1487 php-src/NEWS:1.2027.2.547.2.1488
--- php-src/NEWS:1.2027.2.547.2.1487 Sun May 3 19:09:22 2009
+++ php-src/NEWS Mon May 4 13:12:34 2009
@@ -11,6 +11,8 @@
- Fixed segfault on invalid session.save_path. (Hannes)
- Fixed leaks in imap when a mail_criteria is used. (Pierre)
+- Fixed bug #48131 (Don't try to bind ipv4 addresses to ipv6 ips via
+ bindto). (Ilia)
- Fixed bug #48132 (configure check for curl ssl support fails with
--disable-rpath). (Jani)
- Fixed bug #48058 (Year formatter goes wrong with out-of-int range). (Derick)
http://cvs.php.net/viewvc.cgi/php-src/main/network.c?r1=1.118.2.2.2.16&r2=1.118.2.2.2.17&diff_format=u
Index: php-src/main/network.c
diff -u php-src/main/network.c:1.118.2.2.2.16
php-src/main/network.c:1.118.2.2.2.17
--- php-src/main/network.c:1.118.2.2.2.16 Sat Jan 3 00:06:59 2009
+++ php-src/main/network.c Mon May 4 13:12:35 2009
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: network.c,v 1.118.2.2.2.16 2009/01/03 00:06:59 felipe Exp $ */
+/* $Id: network.c,v 1.118.2.2.2.17 2009/05/04 13:12:35 iliaa Exp $ */
/*#define DEBUG_MAIN_NETWORK 1*/
@@ -423,9 +423,14 @@
switch (sa->sa_family) {
#if HAVE_GETADDRINFO && HAVE_IPV6
case AF_INET6:
- ((struct sockaddr_in6 *)sa)->sin6_family =
sa->sa_family;
- ((struct sockaddr_in6 *)sa)->sin6_port =
htons(port);
- socklen = sizeof(struct sockaddr_in6);
+ if (strstr(bindto, ':')) {
+ ((struct sockaddr_in6
*)sa)->sin6_family = sa->sa_family;
+ ((struct sockaddr_in6 *)sa)->sin6_port
= htons(port);
+ socklen = sizeof(struct sockaddr_in6);
+ } else {
+ socklen = 0;
+ sa = NULL;
+ }
break;
#endif
case AF_INET:
@@ -786,9 +791,14 @@
switch (sa->sa_family) {
#if HAVE_GETADDRINFO && HAVE_IPV6
case AF_INET6:
- ((struct sockaddr_in6 *)sa)->sin6_family =
sa->sa_family;
- ((struct sockaddr_in6 *)sa)->sin6_port =
htons(port);
- socklen = sizeof(struct sockaddr_in6);
+ if (strstr(bindto, ':')) {
+ ((struct sockaddr_in6
*)sa)->sin6_family = sa->sa_family;
+ ((struct sockaddr_in6 *)sa)->sin6_port
= htons(port);
+ socklen = sizeof(struct sockaddr_in6);
+ } else {
+ socklen = 0;
+ sa = NULL;
+ }
break;
#endif
case AF_INET:
@@ -808,7 +818,7 @@
if (bindto) {
struct sockaddr *local_address = NULL;
int local_address_len = 0;
-
+
if (sa->sa_family == AF_INET) {
struct sockaddr_in *in4 =
emalloc(sizeof(struct sockaddr_in));
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php