diff --git a/scan_engine.cc b/scan_engine.cc index 1410ebf82..9f4d25945 100644 --- a/scan_engine.cc +++ b/scan_engine.cc @@ -821,7 +821,13 @@ void UltraProbe::setConnect(u16 portno) { ConnectScanInfo::ConnectScanInfo() { maxValidSD = -1; numSDs = 0; - maxSocketsAllowed = (o.max_parallelism)? o.max_parallelism : MAX(5, max_sd() - 4); + /* Subtracting 5 from max_sd accounts for + stdin + stdout + stderr + /dev/tty + /var/run/utmpx, which is opened on Mac OS X at least. */ + maxSocketsAllowed = (o.max_parallelism)? o.max_parallelism : MAX(5, max_sd() - 5); FD_ZERO(&fds_read); FD_ZERO(&fds_write); FD_ZERO(&fds_except);