Detect an invalid fd if passed to para_fd_set and abort in this case.
A typical "values of beta will cause dom!" candidate.
err = errno;
} while (ret < 0 && err == EINTR);
if (ret < 0)
- PARA_CRIT_LOG("select error (%s)\n", strerror(err));
+ PARA_CRIT_LOG("select error: %s, max_fileno: %d\n",
+ strerror(err), n);
return ret;
}
*/
void para_fd_set(int fd, fd_set *fds, int *max_fileno)
{
+ if (fd < 0 || fd >= FD_SETSIZE) {
+ PARA_EMERG_LOG("fatal: tried to add invalid fd %d\n", fd);
+ exit(EXIT_FAILURE);
+ }
FD_SET(fd, fds);
*max_fileno = PARA_MAX(*max_fileno, fd);
}