diff --git a/reactos/subsystems/win32/csrss/csrsrv/api/wapi.c b/reactos/subsystems/win32/csrss/csrsrv/api/wapi.c index a6eb0dd09e4..2a6272e7e84 100644 --- a/reactos/subsystems/win32/csrss/csrsrv/api/wapi.c +++ b/reactos/subsystems/win32/csrss/csrsrv/api/wapi.c @@ -771,25 +771,7 @@ CsrpHandleConnectionRequest (PPORT_MESSAGE Request) } } - if (ProcessData->ProcessHandle == NULL) - { - OBJECT_ATTRIBUTES ObjectAttributes; - - InitializeObjectAttributes(&ObjectAttributes, - NULL, - 0, - NULL, - NULL); - DPRINT1("WARNING: CSR PROCESS WITH NO CSR PROCESS HANDLE???\n"); - ClientId.UniqueThread = 0; - Status = NtOpenProcess(&ProcessData->ProcessHandle, - PROCESS_ALL_ACCESS, - &ObjectAttributes, - &Request->ClientId); - DPRINT1("Status: %lx. Handle: %lx\n", Status, ProcessData->ProcessHandle); - } - - if (ProcessData) + if ((ProcessData) && (ProcessData != CsrRootProcess)) { /* Attach the Shared Section */ Status = CsrSrvAttachSharedSection(ProcessData, ConnectInfo); @@ -803,6 +785,10 @@ CsrpHandleConnectionRequest (PPORT_MESSAGE Request) DPRINT1("Shared section map failed: %lx\n", Status); } } + else if (ProcessData == CsrRootProcess) + { + AllowConnection = TRUE; + } Status = NtAcceptConnectPort(&ServerPort, NULL, diff --git a/reactos/subsystems/win32/csrss/csrsrv/server.c b/reactos/subsystems/win32/csrss/csrsrv/server.c index 78db1e9c9b8..a96705212b4 100644 --- a/reactos/subsystems/win32/csrss/csrsrv/server.c +++ b/reactos/subsystems/win32/csrss/csrsrv/server.c @@ -494,12 +494,6 @@ CsrSrvAttachSharedSection(IN PCSR_PROCESS CsrProcess OPTIONAL, ViewUnmap, SEC_NO_CHANGE, PAGE_EXECUTE_READ); - if (Status == STATUS_CONFLICTING_ADDRESSES) - { - /* I Think our csrss tries to connect to itself... */ - DPRINT1("Multiple mapping hack\n"); - Status = STATUS_SUCCESS; - } if (!NT_SUCCESS(Status)) return Status; }