[Ffmpeg-devel] poll() emulation for ffserver
matthieu castet
castet.matthieu
Wed Feb 14 19:42:40 CET 2007
Hi,
Fran?ois Revol wrote:
> +
> + FD_ZERO(&read_set);
> + FD_ZERO(&write_set);
> + FD_ZERO(&exception_set);
> +
> + n = -1;
> + for(i = 0; i < numfds; i++) {
> + if (fds[i].fd < 0)
> + continue;
> +
> + if (fds[i].events & POLLIN) FD_SET(fds[i].fd, &read_set);
> + if (fds[i].events & POLLOUT) FD_SET(fds[i].fd, &write_set);
> + if (fds[i].events & POLLERR) FD_SET(fds[i].fd, &exception_set);
You you check if numfds >= FD_SETSIZE :
man select
[...]
An fd_set is a fixed size buffer. Executing FD_CLR() or FD_SET() with
a value of fd that is negative or is equal to or larger than FD_SETSIZE
will result in undefined behavior. Moreover, POSIX requires fd to be a
valid file descriptor.
Matthieu
More information about the ffmpeg-devel
mailing list