Author: tfaber
Date: Sat Jun 25 23:27:45 2016
New Revision: 71673
URL: 
http://svn.reactos.org/svn/reactos?rev=71673&view=rev
Log:
[NTOS:LPC]
- Avoid dereferencing a null pointer in LpcpDeletePort. By Samuel Serapión.
CORE-6850 #resolve
Modified:
    trunk/reactos/ntoskrnl/lpc/close.c
Modified: trunk/reactos/ntoskrnl/lpc/close.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/lpc/close.c?rev=7…
==============================================================================
--- trunk/reactos/ntoskrnl/lpc/close.c  [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/lpc/close.c  [iso-8859-1] Sat Jun 25 23:27:45 2016
@@ -432,20 +432,20 @@
         /* Dereference the object unless it's the same port */
         if (ConnectionPort != Port) ObDereferenceObject(ConnectionPort);
+
+        /* Check if this is a connection port with a server process */
+        if (((Port->Flags & LPCP_PORT_TYPE_MASK) == LPCP_CONNECTION_PORT)
&&
+            (ConnectionPort->ServerProcess))
+        {
+            /* Dereference the server process */
+            ObDereferenceObject(ConnectionPort->ServerProcess);
+            ConnectionPort->ServerProcess = NULL;
+        }
     }
     else
     {
         /* Release the lock */
         KeReleaseGuardedMutex(&LpcpLock);
-    }
-
-    /* Check if this is a connection port with a server process */
-    if (((Port->Flags & LPCP_PORT_TYPE_MASK) == LPCP_CONNECTION_PORT) &&
-        (ConnectionPort->ServerProcess))
-    {
-        /* Dereference the server process */
-        ObDereferenceObject(ConnectionPort->ServerProcess);
-        ConnectionPort->ServerProcess = NULL;
     }
     /* Free client security */