mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2: Fix bug #74764 and add a test case
This commit is contained in:
commit
6b5e7e6b42
3 changed files with 29 additions and 0 deletions
2
NEWS
2
NEWS
|
@ -24,6 +24,8 @@ PHP NEWS
|
|||
. Fixed bug #76818 (Memory corruption and segfault). (Remi)
|
||||
. Fixed bug #73457 (Wrong error message when fopen FTP wrapped fails to open
|
||||
data connection). (Ville Hukkamäki)
|
||||
. Fixed bug #74764 (Bindto IPv6 works with file_get_contents but fails with
|
||||
stream_socket_client). (Ville Hukkamäki)
|
||||
|
||||
30 Aug 2018, PHP 7.3.0beta3
|
||||
|
||||
|
|
24
ext/standard/tests/network/bug74764.phpt
Normal file
24
ext/standard/tests/network/bug74764.phpt
Normal file
|
@ -0,0 +1,24 @@
|
|||
--TEST--
|
||||
Bug #74764 IPv6 bindto fails with stream_socket_client()
|
||||
--SKIPIF--
|
||||
<?php
|
||||
/* following copied straight from the tcp6loop.phpt */
|
||||
@stream_socket_client('tcp://[::1]:0', $errno);
|
||||
if ($errno != 111) die('skip IPv6 not supported.');
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
$context = stream_context_create(
|
||||
['socket' => array('bindto' => "[::]:0")]
|
||||
);
|
||||
$socket = stream_socket_client('tcp://localhost:1443', $errno, $errstr, 5, STREAM_CLIENT_CONNECT, $context);
|
||||
|
||||
$context = stream_context_create(
|
||||
array('socket' => array('bindto' => "0.0.0.0:0"))
|
||||
);
|
||||
$socket = stream_socket_client('tcp://localhost:1443', $errno, $errstr, 5, STREAM_CLIENT_CONNECT, $context);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: stream_socket_client(): unable to connect to tcp://localhost:1443 (%s) in %s on line %d
|
||||
|
||||
Warning: stream_socket_client(): unable to connect to tcp://localhost:1443 (%s) in %s on line %d
|
|
@ -839,6 +839,9 @@ php_socket_t php_network_connect_socket_to_host(const char *host, unsigned short
|
|||
int local_address_len = 0;
|
||||
|
||||
if (sa->sa_family == AF_INET) {
|
||||
if (strchr(bindto,':')) {
|
||||
goto skip_bind;
|
||||
}
|
||||
struct sockaddr_in *in4 = emalloc(sizeof(struct sockaddr_in));
|
||||
|
||||
local_address = (struct sockaddr*)in4;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue