diff --git a/reactos/subsys/csrss/api/process.c b/reactos/subsys/csrss/api/process.c index 75c5596cde1..48fd6c3c995 100644 --- a/reactos/subsys/csrss/api/process.c +++ b/reactos/subsys/csrss/api/process.c @@ -1,4 +1,4 @@ -/* $Id: process.c,v 1.33 2004/04/09 20:03:15 navaraf Exp $ +/* $Id: process.c,v 1.34 2004/06/27 10:16:59 weiden Exp $ * * reactos/subsys/csrss/api/process.c * @@ -411,6 +411,11 @@ CSR_API(CsrDuplicateHandle) Reply->Header.DataSize = sizeof(CSRSS_API_REPLY) - LPC_MESSAGE_BASE_SIZE; ProcessData = CsrGetProcessData(Request->Data.DuplicateHandleRequest.ProcessId); + if (ProcessData == NULL) + { + DPRINT1("CsrGetProcessData() failed for process 0x%x, unable to dublicate handle\n", Request->Data.DuplicateHandleRequest.ProcessId); + return STATUS_INVALID_HANDLE; + } Reply->Status = CsrGetObject(ProcessData, Request->Data.DuplicateHandleRequest.Handle, &Object); if (! NT_SUCCESS(Reply->Status)) { diff --git a/reactos/subsys/csrss/api/wapi.c b/reactos/subsys/csrss/api/wapi.c index 00a2a76514f..15d7ba00eae 100644 --- a/reactos/subsys/csrss/api/wapi.c +++ b/reactos/subsys/csrss/api/wapi.c @@ -1,4 +1,4 @@ -/* $Id: wapi.c,v 1.34 2004/04/09 20:03:15 navaraf Exp $ +/* $Id: wapi.c,v 1.35 2004/06/27 10:16:59 weiden Exp $ * * reactos/subsys/csrss/api/wapi.c * @@ -135,7 +135,12 @@ Thread_Api2(HANDLE ServerPort) Reply = (PCSRSS_API_REPLY)&LpcReply; ProcessData = CsrGetProcessData((ULONG)LpcRequest.Header.ClientId.UniqueProcess); - + if (ProcessData == NULL) + { + DPRINT1("CSR: Unable to find process data for process 0x%x\n", (ULONG)LpcRequest.Header.ClientId.UniqueProcess); + NtClose(ServerPort); + continue; + } CsrApiCallHandler(ProcessData, Request, Reply); } } @@ -182,6 +187,12 @@ void Thread_Api(PVOID PortHandle) } ProcessData = CsrGetProcessData((ULONG)Request.Header.ClientId.UniqueProcess); + if (ProcessData == NULL) + { + DPRINT1("CSR: Unable to find process data for process 0x%x\n", (ULONG)Request.Header.ClientId.UniqueProcess); + NtClose(ServerPort); + continue; + } ProcessData->CsrSectionViewBase = LpcRead.ViewBase; ProcessData->CsrSectionViewSize = LpcRead.ViewSize;