com php-src: Handle bindto error: ext/standard/tests/network/bindto.phpt main/streams/xp_socket.c

From: Date: Wed, 29 Jul 2020 09:46:27 +0000
Subject: com php-src: Handle bindto error: ext/standard/tests/network/bindto.phpt main/streams/xp_socket.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-112426@lists.php.net to get a copy of this message
Commit: 0b8c83f5936581942715d14883cdebddc18bad30 Author: twosee <twose@qq.com> Wed, 29 Jul 2020 12:59:44 +0800 Parents: 9a744c66e70d34293eb3726cc9d17a3ddc052e30 Branches: PHP-7.3 PHP-7.4 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=0b8c83f5936581942715d14883cdebddc18bad30 Log: Handle bindto error Closes GH-5903. Changed paths: A ext/standard/tests/network/bindto.phpt M main/streams/xp_socket.c Diff: diff --git a/ext/standard/tests/network/bindto.phpt b/ext/standard/tests/network/bindto.phpt new file mode 100644 index 0000000000..bfff64a5e0 --- /dev/null +++ b/ext/standard/tests/network/bindto.phpt @@ -0,0 +1,16 @@ +--TEST-- +Test invalid bindto +--FILE-- +<?php +$ctx = stream_context_create([ + 'socket' => [ + 'bindto' => 'invalid', + ], +]); +$fp = stream_socket_client( + 'tcp://www.' . str_repeat('x', 100) . '..com:80', + $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $ctx +); +?> +--EXPECTF-- +Warning: stream_socket_client(): Unable to connect to tcp://%s:80 (Failed to parse address "invalid") in %s on line %d diff --git a/main/streams/xp_socket.c b/main/streams/xp_socket.c index 0ae0c0f77b...4bca670b84 100644 --- a/main/streams/xp_socket.c +++ b/main/streams/xp_socket.c @@ -744,6 +744,10 @@ static inline int php_tcp_sockop_connect(php_stream *stream, php_netstream_data_ return -1; } bindto = parse_ip_address_ex(Z_STRVAL_P(tmpzval), Z_STRLEN_P(tmpzval), &bindport, xparam->want_errortext, &xparam->outputs.error_text); + if (bindto == NULL) { + efree(host); + return -1; + } } #ifdef SO_BROADCAST

« previous php.cvs (#112426) next »