From 65cc36915043f6fbb4cfa9f6d37bbbfb8a3b0108 Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Thu, 5 Feb 2009 15:08:51 +0000 Subject: [PATCH] hackfix some services stuff svn path=/trunk/; revision=39411 --- reactos/base/system/services/rpcserver.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/reactos/base/system/services/rpcserver.c b/reactos/base/system/services/rpcserver.c index cdde7ba49ee..9d21e95b2cd 100644 --- a/reactos/base/system/services/rpcserver.c +++ b/reactos/base/system/services/rpcserver.c @@ -745,6 +745,9 @@ DWORD RQueryServiceObjectSecurity( DWORD dwBytesNeeded; DWORD dwError; + + SECURITY_DESCRIPTOR ObjectDescriptor; + DPRINT("RQueryServiceObjectSecurity() called\n"); hSvc = (PSERVICE_HANDLE)hService; @@ -778,7 +781,10 @@ DWORD RQueryServiceObjectSecurity( /* FIXME: Lock the service list */ - Status = RtlQuerySecurityObject(lpService->lpSecurityDescriptor, + /* hack */ + Status = RtlCreateSecurityDescriptor(&ObjectDescriptor, SECURITY_DESCRIPTOR_REVISION); + + Status = RtlQuerySecurityObject(&ObjectDescriptor /* lpService->lpSecurityDescriptor */, dwSecurityInformation, (PSECURITY_DESCRIPTOR)lpSecurityDescriptor, cbBufSize, @@ -819,9 +825,9 @@ DWORD RSetServiceObjectSecurity( PSERVICE_HANDLE hSvc; PSERVICE lpService; ULONG DesiredAccess = 0; - HANDLE hToken = NULL; + /* HANDLE hToken = NULL; */ HKEY hServiceKey; - NTSTATUS Status; + /* NTSTATUS Status; */ DWORD dwError; DPRINT1("RSetServiceObjectSecurity() called\n"); @@ -875,6 +881,7 @@ DWORD RSetServiceObjectSecurity( if (lpService->bDeleted) return ERROR_SERVICE_MARKED_FOR_DELETE; +#if 0 RpcImpersonateClient(NULL); Status = NtOpenThreadToken(NtCurrentThread(), @@ -882,13 +889,12 @@ DWORD RSetServiceObjectSecurity( TRUE, &hToken); if (!NT_SUCCESS(Status)) - return RtlNtStatusToDosError(Status); + return RtlNtStatusToDosError(Status); RpcRevertToSelf(); /* FIXME: Lock service database */ -#if 0 Status = RtlSetSecurityObject(dwSecurityInformation, (PSECURITY_DESCRIPTOR)lpSecurityDescriptor, &lpService->lpSecurityDescriptor, @@ -917,8 +923,10 @@ DWORD RSetServiceObjectSecurity( Done: +#if 0 if (hToken != NULL) NtClose(hToken); +#endif /* FIXME: Unlock service database */