diff options
| author | 2007-07-23 17:42:48 +0000 | |
|---|---|---|
| committer | 2007-07-23 17:42:48 +0000 | |
| commit | f86d7e3982a9fa0cfe6fde81e7abf9403ed193f1 (patch) | |
| tree | a8cd0d1614d769193d98827af220b104c12a02fa /src/socketengine_iocp.cpp | |
| parent | Fix for bug #358, by rogalek. (diff) | |
A couple of tweaks that i did earlier as diffs. ISON didnt always respect invisibility state of users. socketengine iocp didnt range check fd's before passing them for array lookup
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7502 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/socketengine_iocp.cpp')
| -rw-r--r-- | src/socketengine_iocp.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/socketengine_iocp.cpp b/src/socketengine_iocp.cpp index c5c589e5f..ab894299c 100644 --- a/src/socketengine_iocp.cpp +++ b/src/socketengine_iocp.cpp @@ -257,6 +257,9 @@ int IOCPEngine::DispatchEvents() while (GetQueuedCompletionStatus(m_completionPort, &len, &intfd, &overlap, 1000)) { + if (intfd < 0 || intfd > MAX_DESCRIPTORS) + continue; + // woot, we got an event on a socket :P eh = ref[intfd]; ov = CONTAINING_RECORD(overlap, Overlapped, m_overlap); |
