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@minilop.net> Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
d18d03d6f3
commit
a1d9aa6e07
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue