瀏覽代碼

HPCC-17743 Crash in CSocketEpollThread

Signed-off-by: Mark Kelly <mark.kelly@lexisnexisrisk.com>
Mark Kelly 8 年之前
父節點
當前提交
a5f0aec19f
共有 1 個文件被更改,包括 6 次插入7 次删除
  1. 6 7
      system/jlib/jsocket.cpp

+ 6 - 7
system/jlib/jsocket.cpp

@@ -4798,6 +4798,12 @@ public:
 
     bool add(ISocket *sock,unsigned mode,ISocketSelectNotify *nfy)
     {
+        if ( !sock || !nfy )
+        {
+            WARNLOG("EPOLL: adding fd but sock or nfy is NULL");
+            dbgassertex(false);
+            return false;
+        }
         // maybe check once to prevent 1st delay? TBD
         CriticalBlock block(sect);
         ForEachItemIn(i,items)
@@ -4806,13 +4812,6 @@ public:
             if ( !si->del && (si->sock==sock) )
                 si->del = true;
         }
-        if ( !sock || !nfy )
-        {
-            WARNLOG("EPOLL: adding fd but sock or nfy is NULL");
-            selectvarschange = true;
-            triggerselect();
-            return true;
-        }
         SelectItem *sn = new SelectItem;
         sn->nfy = LINK(nfy);
         sn->sock = LINK(sock);