diff options
Diffstat (limited to 'ext/sockets/sockets.c')
| -rw-r--r-- | ext/sockets/sockets.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c index c8a1509e46..c3c21be6ff 100644 --- a/ext/sockets/sockets.c +++ b/ext/sockets/sockets.c @@ -187,7 +187,8 @@ static void destroy_iovec(zend_rsrc_list_entry *rsrc) } } -static void destroy_socket(zend_rsrc_list_entry *rsrc) { +static void destroy_socket(zend_rsrc_list_entry *rsrc) +{ php_socket *php_sock = (php_socket*)rsrc->ptr; close(php_sock->socket); @@ -367,9 +368,13 @@ PHP_MINFO_FUNCTION(sockets) Allocates a new file descriptor set */ PHP_FUNCTION(socket_fd_alloc) { - fd_set set; - FD_ZERO(&set); - ZEND_REGISTER_RESOURCE(return_value, &set, le_destroy); + fd_set *set; + + set = emalloc(sizeof *set); + + FD_ZERO(set); + + ZEND_REGISTER_RESOURCE(return_value, set, le_destroy); } /* }}} */ |
