[ https://issues.apache.org/jira/browse/GUACAMOLE-23?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Jumper resolved GUACAMOLE-23. ------------------------------------- Resolution: Fixed Completed prior to full migration to Apache infrastructure. > __guac_socket_fd_select_handler() must always init fd_set > --------------------------------------------------------- > > Key: GUACAMOLE-23 > URL: https://issues.apache.org/jira/browse/GUACAMOLE-23 > Project: Guacamole > Issue Type: Bug > Components: libguac > Affects Versions: 0.9.9 > Reporter: Michael Jumper > Priority: Minor > Fix For: 0.9.10-incubating > > > {panel:bgColor=#FFFFEE} > *The description of this issue was copied from > [GUAC-1477|https://glyptodon.org/jira/browse/GUAC-1477], an issue in the JIRA > instance used by the Guacamole project prior to its acceptance into the > Apache Incubator.* > Comments, attachments, related issues, and history from prior to acceptance > *have not been copied* and can be found instead at the original issue. > {panel} > In > [socket_fd.c|https://github.com/glyptodon/guacamole-server/blob/f49540f43644108fb50876c6cd208274688ce3e2/src/libguac/socket-fd.c#L95-L108], > in function {{__guac_socket_fd_select_handler()}}, {{select()}} will be > invoked without initializing the corresponding {{fd_set}} if {{usec_timeout}} > is less than zero: > {code:none} > /* No timeout if usec_timeout is negative */ > if (usec_timeout < 0) > retval = select(data->fd + 1, &fds, NULL, NULL, NULL); > /* Handle timeout if specified */ > else { > timeout.tv_sec = usec_timeout/1000000; > timeout.tv_usec = usec_timeout%1000000; > FD_ZERO(&fds); > FD_SET(data->fd, &fds); > retval = select(data->fd + 1, &fds, NULL, NULL, &timeout); > } > {code} > Without the required {{FD_ZERO()}} and {{FD_SET()}} calls, {{select()}} will > block indefinitely because no fd has been registered. -- This message was sent by Atlassian JIRA (v6.3.4#6332)