[Xcb-commit] src
Julien Danjou
jdanjou at kemper.freedesktop.org
Thu Apr 8 03:07:16 PDT 2010
src/xcb_conn.c | 8 ++++++++
1 file changed, 8 insertions(+)
New commits:
commit a1d9aa6e07a297f4108b4ad787336f74c86a3312
Author: Rémi Denis-Courmont <remi.denis-courmont at nokia.com>
Date: Fri Mar 26 23:12:47 2010 +0200
Fail if fd is too big and poll() is not available
Depending on the process file limit, a file descriptor can be larger
than the capacity of fd_set. There is no portable way to create a
large enough fd_set at run-time. So we just fail if the file descriptor
number is too high and poll() is not available.
Reviewed-by: Jamey Sharp <jamey at minilop.net>
Signed-off-by: Julien Danjou <julien at danjou.info>
diff --git a/src/xcb_conn.c b/src/xcb_conn.c
index ed2153d..1d37614 100644
--- a/src/xcb_conn.c
+++ b/src/xcb_conn.c
@@ -210,6 +210,14 @@ xcb_connection_t *xcb_connect_to_fd(int fd, xcb_auth_info_t *auth_info)
{
xcb_connection_t* c;
+#ifndef USE_POLL
+ if(fd >= FD_SETSIZE) /* would overflow in FD_SET */
+ {
+ close(fd);
+ return (xcb_connection_t *) &error_connection;
+ }
+#endif
+
c = calloc(1, sizeof(xcb_connection_t));
if(!c) {
close(fd);
More information about the xcb-commit
mailing list