[PATCH 4/5] services: Make svcctl_{Lock, Unlock}ServiceDatabase() into a no-op.
Zebediah Figura
z.figura12 at gmail.com
Mon Apr 27 22:35:33 CDT 2020
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
programs/services/rpc.c | 44 ++++++-----------------------------------
1 file changed, 6 insertions(+), 38 deletions(-)
diff --git a/programs/services/rpc.c b/programs/services/rpc.c
index 0f2c1440c23..d0f85024191 100644
--- a/programs/services/rpc.c
+++ b/programs/services/rpc.c
@@ -1365,55 +1365,23 @@ DWORD __cdecl svcctl_CloseServiceHandle(
return ERROR_SUCCESS;
}
-static void SC_RPC_LOCK_destroy(SC_RPC_LOCK hLock)
-{
- struct sc_lock *lock = hLock;
- scmdatabase_unlock_startup(lock->db);
- HeapFree(GetProcessHeap(), 0, lock);
-}
-
void __RPC_USER SC_RPC_LOCK_rundown(SC_RPC_LOCK hLock)
{
- SC_RPC_LOCK_destroy(hLock);
}
-DWORD __cdecl svcctl_LockServiceDatabase(
- SC_RPC_HANDLE hSCManager,
- SC_RPC_LOCK *phLock)
+DWORD __cdecl svcctl_LockServiceDatabase(SC_RPC_HANDLE manager, SC_RPC_LOCK *lock)
{
- struct sc_manager_handle *manager;
- struct sc_lock *lock;
- DWORD err;
-
- WINE_TRACE("(%p, %p)\n", hSCManager, phLock);
-
- if ((err = validate_scm_handle(hSCManager, SC_MANAGER_LOCK, &manager)) != ERROR_SUCCESS)
- return err;
-
- if (!scmdatabase_lock_startup(manager->db, 0))
- return ERROR_SERVICE_DATABASE_LOCKED;
-
- lock = HeapAlloc(GetProcessHeap(), 0, sizeof(struct sc_lock));
- if (!lock)
- {
- scmdatabase_unlock_startup(manager->db);
- return ERROR_NOT_ENOUGH_SERVER_MEMORY;
- }
-
- lock->db = manager->db;
- *phLock = lock;
+ TRACE("(%p, %p)\n", manager, lock);
+ *lock = (SC_RPC_LOCK)0xdeadbeef;
return ERROR_SUCCESS;
}
-DWORD __cdecl svcctl_UnlockServiceDatabase(
- SC_RPC_LOCK *phLock)
+DWORD __cdecl svcctl_UnlockServiceDatabase(SC_RPC_LOCK *lock)
{
- WINE_TRACE("(&%p)\n", *phLock);
-
- SC_RPC_LOCK_destroy(*phLock);
- *phLock = NULL;
+ TRACE("(&%p)\n", *lock);
+ *lock = NULL;
return ERROR_SUCCESS;
}
--
2.26.2
More information about the wine-devel
mailing list