Do not try to fill fd_set with fd>=FD_SETSIZE
This is UB and causes buffer overflow and crash on linux.
This commit is contained in:
parent
72462b4b6e
commit
d5e1bffd2a
|
@ -3835,6 +3835,9 @@ void Worker::waitForInput()
|
||||||
int fdMax = 0;
|
int fdMax = 0;
|
||||||
for (auto & i : children) {
|
for (auto & i : children) {
|
||||||
for (auto & j : i.fds) {
|
for (auto & j : i.fds) {
|
||||||
|
if (j >= FD_SETSIZE) {
|
||||||
|
throw BuildError("reached FD_SETSIZE limit");
|
||||||
|
}
|
||||||
FD_SET(j, &fds);
|
FD_SET(j, &fds);
|
||||||
if (j >= fdMax) fdMax = j + 1;
|
if (j >= fdMax) fdMax = j + 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue