From 30e8e2d0b0066fb8848ee8800e02a1c4adbdcef7 Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Sat, 21 Feb 2004 09:06:27 +0000 Subject: [PATCH] =?UTF-8?q?-=20Minor=20correction=20to=20NtConnectPort=20t?= =?UTF-8?q?o=20avoid=20freeing=20NULL=20pointer.=20Based=20on=20patch=20by?= =?UTF-8?q?=20Waldo=20Alvarez=20Ca=EF=BF=BDizares.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/trunk/; revision=8282 --- reactos/ntoskrnl/lpc/connect.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/reactos/ntoskrnl/lpc/connect.c b/reactos/ntoskrnl/lpc/connect.c index c2066be4677..48d9eaf41fe 100644 --- a/reactos/ntoskrnl/lpc/connect.c +++ b/reactos/ntoskrnl/lpc/connect.c @@ -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,