mirror of
https://github.com/php/php-src.git
synced 2026-04-20 14:31:06 +02:00
Avoid possible segfault when using stream_socket_client with bogus flags.
This commit is contained in:
@@ -542,7 +542,7 @@ static int stream_array_to_fd_set(zval *stream_array, fd_set *fds, php_socket_t
|
||||
* when casting. It is only used here so that the buffered data warning
|
||||
* is not displayed.
|
||||
* */
|
||||
if (SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD_FOR_SELECT | PHP_STREAM_CAST_INTERNAL, (void*)&this_fd, 1)) {
|
||||
if (SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD_FOR_SELECT | PHP_STREAM_CAST_INTERNAL, (void*)&this_fd, 1) && this_fd >= 0) {
|
||||
FD_SET(this_fd, fds);
|
||||
if (this_fd > *max_fd) {
|
||||
*max_fd = this_fd;
|
||||
@@ -578,7 +578,7 @@ static int stream_array_from_fd_set(zval *stream_array, fd_set *fds TSRMLS_DC)
|
||||
* when casting. It is only used here so that the buffered data warning
|
||||
* is not displayed.
|
||||
*/
|
||||
if (SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD_FOR_SELECT | PHP_STREAM_CAST_INTERNAL, (void*)&this_fd, 1)) {
|
||||
if (SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD_FOR_SELECT | PHP_STREAM_CAST_INTERNAL, (void*)&this_fd, 1) && this_fd >= 0) {
|
||||
if (FD_ISSET(this_fd, fds)) {
|
||||
zend_hash_next_index_insert(new_hash, (void *)elem, sizeof(zval *), (void **)&dest_elem);
|
||||
if (dest_elem) {
|
||||
|
||||
Reference in New Issue
Block a user