summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cmd_ison.cpp3
-rw-r--r--src/socketengine_iocp.cpp3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/cmd_ison.cpp b/src/cmd_ison.cpp
index 0cee160c7..d050af982 100644
--- a/src/cmd_ison.cpp
+++ b/src/cmd_ison.cpp
@@ -36,6 +36,9 @@ CmdResult cmd_ison::Handle (const char** parameters, int pcnt, userrec *user)
if (u)
{
+ if (u->Visibility && !u->Visibility->VisibleTo(user))
+ continue;
+
reply.append(u->nick).append(" ");
if (reply.length() > 450)
{
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);