From 91a9d24aa30507e6c7d8937db2de24394f0ce121 Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Wed, 2 Apr 2014 11:09:26 +0200 Subject: Fix bug #64330 stream_socket_server() creates wrong Abstract Namespace UNIX sockets --- NEWS | 5 +++++ ext/standard/tests/network/bug64330.phpt | 20 ++++++++++++++++++++ main/streams/xp_socket.c | 3 ++- 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 ext/standard/tests/network/bug64330.phpt diff --git a/NEWS b/NEWS index be9cf23237..51ed4f30ee 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 0000000000..1ea305cb5f --- /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-- + +--FILE-- + +===DONE=== +--EXPECT-- +Test +ok +===DONE=== diff --git a/main/streams/xp_socket.c b/main/streams/xp_socket.c index 2c7ca8d414..53f0769a1c 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 -- cgit v1.2.1