stream_socket_server() creates wrong Abstract Namespace UNIX sockets
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)
--- /dev/null
+--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===
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