com php-src: Fix bug #64330: NEWS ext/standard/tests/network/bug64330.phpt main/streams/xp_socket.c
| From: | Michael Wallner | Date: | Wed, 02 Apr 2014 09:09:26 +0000 |
| Subject: | com php-src: Fix bug #64330: NEWS ext/standard/tests/network/bug64330.phpt main/streams/xp_socket.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-76677@lists.php.net to get a copy of this message | ||
Commit: 91a9d24aa30507e6c7d8937db2de24394f0ce121
Author: Michael Wallner <mike@php.net> Wed, 2 Apr 2014 11:09:26 +0200
Parents: f244513fc059a9b7ee2b91ad65f1a2f013b5d588
Branches: PHP-5.4 PHP-5.5 PHP-5.6 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=91a9d24aa30507e6c7d8937db2de24394f0ce121
Log:
Fix bug #64330
stream_socket_server() creates wrong Abstract Namespace UNIX sockets
Bugs:
https://bugs.php.net/64330
Changed paths:
M NEWS
A ext/standard/tests/network/bug64330.phpt
M main/streams/xp_socket.c
Diff:
diff --git a/NEWS b/NEWS
index be9cf23..51ed4f3 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,11 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2014, PHP 5.4.28
+
+- Core:
+ . Fixed bug #64330 (stream_socket_server() creates wrong Abstract Namespace
+ UNIX sockets). (Mike)
+
- Embed:
. Fixed bug #65715 (php5embed.lib isn't provided anymore). (Anatol)
diff --git a/ext/standard/tests/network/bug64330.phpt b/ext/standard/tests/network/bug64330.phpt
new file mode 100644
index 0000000..1ea305c
--- /dev/null
+++ b/ext/standard/tests/network/bug64330.phpt
@@ -0,0 +1,20 @@
+--TEST--
+Bug #64330 (stream_socket_server() creates wrong Abstract Namespace UNIX sockets)
+--SKIPIF--
+<?php
+if (!in_array("unix", stream_get_transports())) die("SKIP unix domain sockets
unavailable");
+?>
+--FILE--
+<?php
+echo "Test\n";
+$server = stream_socket_server("unix://\x00/MyBindName");
+$client = stream_socket_client("unix://\x00/MyBindName");
+if ($client) {
+ echo "ok\n";
+}
+?>
+===DONE===
+--EXPECT--
+Test
+ok
+===DONE===
diff --git a/main/streams/xp_socket.c b/main/streams/xp_socket.c
index 2c7ca8d..53f0769 100644
--- a/main/streams/xp_socket.c
+++ b/main/streams/xp_socket.c
@@ -588,7 +588,8 @@ static inline int php_tcp_sockop_bind(php_stream *stream, php_netstream_data_t *
parse_unix_address(xparam, &unix_addr TSRMLS_CC);
- return bind(sock->socket, (struct sockaddr *)&unix_addr, sizeof(unix_addr));
+ return bind(sock->socket, (const struct sockaddr *)&unix_addr,
+ (socklen_t) XtOffsetOf(struct sockaddr_un, sun_path) + xparam->inputs.namelen);
}
#endif