- Minor correction to NtConnectPort to avoid freeing NULL pointer. Based on patch...
authorFilip Navara <filip.navara@gmail.com>
Sat, 21 Feb 2004 09:06:27 +0000 (09:06 +0000)
committerFilip Navara <filip.navara@gmail.com>
Sat, 21 Feb 2004 09:06:27 +0000 (09:06 +0000)
svn path=/trunk/; revision=8282

reactos/ntoskrnl/lpc/connect.c

index c2066be..48d9eaf 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: connect.c,v 1.25 2004/02/02 23:48:42 ea Exp $
+/* $Id: connect.c,v 1.26 2004/02/21 09:06:27 navaraf Exp $
  * 
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -432,17 +432,6 @@ NtConnectPort (PHANDLE                             UnsafeConnectedPortHandle,
     {
       if (UnsafeConnectDataLength != NULL)
        {
-         if (ExGetPreviousMode() != KernelMode)
-           {
-             Status = MmCopyToCaller(UnsafeConnectData,
-                                     ConnectData,
-                                     ConnectDataLength);
-             ExFreePool(ConnectData);
-             if (!NT_SUCCESS(Status))
-               {
-                 return(Status);
-               }
-           }
          Status = MmCopyToCaller(UnsafeConnectDataLength,
                                  &ConnectDataLength,
                                  sizeof(ULONG));
@@ -451,6 +440,17 @@ NtConnectPort (PHANDLE                             UnsafeConnectedPortHandle,
              return(Status);
            }
        }
+      if (UnsafeConnectData != NULL && ConnectData != NULL)
+       {
+         Status = MmCopyToCaller(UnsafeConnectData,
+                                     ConnectData,
+                                     ConnectDataLength);
+         ExFreePool(ConnectData);
+         if (!NT_SUCCESS(Status))
+           {
+             return(Status);
+           }
+       }
     }
   Status = ObInsertObject(ConnectedPort,
                          NULL,