summaryrefslogtreecommitdiff
path: root/ext/sockets/sockets.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sockets/sockets.c')
-rw-r--r--ext/sockets/sockets.c13
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);
}
/* }}} */