summaryrefslogtreecommitdiff
path: root/libavformat/os_support.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat/os_support.c')
-rw-r--r--libavformat/os_support.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/libavformat/os_support.c b/libavformat/os_support.c
index bcb62b8528..b70dc2755b 100644
--- a/libavformat/os_support.c
+++ b/libavformat/os_support.c
@@ -139,6 +139,11 @@ int poll(struct pollfd *fds, nfds_t numfds, int timeout)
int n;
int rc;
+ if (numfds >= FD_SETSIZE) {
+ errno = EINVAL;
+ return -1;
+ }
+
FD_ZERO(&read_set);
FD_ZERO(&write_set);
FD_ZERO(&exception_set);
@@ -147,10 +152,6 @@ int poll(struct pollfd *fds, nfds_t numfds, int timeout)
for(i = 0; i < numfds; i++) {
if (fds[i].fd < 0)
continue;
- if (fds[i].fd >= FD_SETSIZE) {
- errno = EINVAL;
- return -1;
- }
if (fds[i].events & POLLIN) FD_SET(fds[i].fd, &read_set);
if (fds[i].events & POLLOUT) FD_SET(fds[i].fd, &write_set);