1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
Description: Fixes misuse of FD_SET()
Origin: vendor
Forwarded: no
Last-Update: 2010-01-18
--- a/ext/sockets/sockets.c
+++ b/ext/sockets/sockets.c
@@ -720,6 +720,7 @@ static int php_sock_array_to_fd_set(zval
php_sock = (php_socket*) zend_fetch_resource(element TSRMLS_CC, -1, le_socket_name, NULL, 1, le_socket);
if (!php_sock) continue; /* If element is not a resource, skip it */
+ if (php_sock->bsd_socket > FD_SETSIZE) continue; /* must ignore it */
PHP_SAFE_FD_SET(php_sock->bsd_socket, fds);
if (php_sock->bsd_socket > *max_fd) {
--- a/ext/standard/streamsfuncs.c
+++ b/ext/standard/streamsfuncs.c
@@ -610,6 +610,8 @@ static int stream_array_to_fd_set(zval *
* is not displayed.
* */
if (SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD_FOR_SELECT | PHP_STREAM_CAST_INTERNAL, (void*)&this_fd, 1) && this_fd >= 0) {
+ if (this_fd > FD_SETSIZE)
+ continue;
PHP_SAFE_FD_SET(this_fd, fds);
|