Module: wine Branch: refs/heads/master Commit: 8e5b36147dba9e147ad7c1a92530f6563908eee3 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=8e5b36147dba9e147ad7c1a9...
Author: Robert Shearman rob@codeweavers.com Date: Tue Jan 10 20:06:22 2006 +0100
ole: Reduce the access rights required by start_local_service.
---
dlls/ole32/rpc.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/dlls/ole32/rpc.c b/dlls/ole32/rpc.c index c1b3f78..6e4ff1f 100644 --- a/dlls/ole32/rpc.c +++ b/dlls/ole32/rpc.c @@ -677,20 +677,20 @@ static HRESULT create_server(REFCLSID rc /* * start_local_service() - start a service given its name and parameters */ -static DWORD start_local_service(LPCWSTR name, DWORD num, LPWSTR *params) +static DWORD start_local_service(LPCWSTR name, DWORD num, LPCWSTR *params) { SC_HANDLE handle, hsvc; DWORD r = ERROR_FUNCTION_FAILED;
TRACE("Starting service %s %ld params\n", debugstr_w(name), num);
- handle = OpenSCManagerW(NULL, NULL, SC_MANAGER_ALL_ACCESS); + handle = OpenSCManagerW(NULL, NULL, SC_MANAGER_CONNECT); if (!handle) return r; - hsvc = OpenServiceW(handle, name, SC_MANAGER_ALL_ACCESS); + hsvc = OpenServiceW(handle, name, SERVICE_START); if (hsvc) { - if(StartServiceW(hsvc, num, (LPCWSTR*)params)) + if(StartServiceW(hsvc, num, params)) r = ERROR_SUCCESS; else r = GetLastError(); @@ -768,7 +768,7 @@ static HRESULT create_local_service(REFC num_args++; RegQueryValueExW(hkey, szServiceParams, NULL, &type, (LPBYTE)args[0], &sz); } - r = start_local_service(buf, num_args, args); + r = start_local_service(buf, num_args, (LPCWSTR *)args); if (r==ERROR_SUCCESS) hres = S_OK; HeapFree(GetProcessHeap(),0,args[0]);