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;
|
||||
for (auto & i : children) {
|
||||
for (auto & j : i.fds) {
|
||||
if (j >= FD_SETSIZE) {
|
||||
throw BuildError("reached FD_SETSIZE limit");
|
||||
}
|
||||
FD_SET(j, &fds);
|
||||
if (j >= fdMax) fdMax = j + 1;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue