aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/os_support.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libavformat/os_support.c b/libavformat/os_support.c
index b70dc2755b..ded36d6400 100644
--- a/libavformat/os_support.c
+++ b/libavformat/os_support.c
@@ -139,10 +139,12 @@ int poll(struct pollfd *fds, nfds_t numfds, int timeout)
int n;
int rc;
+#ifdef __MINGW32__
if (numfds >= FD_SETSIZE) {
errno = EINVAL;
return -1;
}
+#endif
FD_ZERO(&read_set);
FD_ZERO(&write_set);
@@ -152,6 +154,12 @@ int poll(struct pollfd *fds, nfds_t numfds, int timeout)
for(i = 0; i < numfds; i++) {
if (fds[i].fd < 0)
continue;
+#ifndef __MINGW32__
+ if (fds[i].fd >= FD_SETSIZE) {
+ errno = EINVAL;
+ return -1;
+ }
+#endif
if (fds[i].events & POLLIN) FD_SET(fds[i].fd, &read_set);
if (fds[i].events & POLLOUT) FD_SET(fds[i].fd, &write_set);