Module: wine Branch: master Commit: 70c77cdfee49c44542347b222d77bcb95ba7fdaa URL: https://source.winehq.org/git/wine.git/?a=commit;h=70c77cdfee49c44542347b222...
Author: Akihiro Sagawa sagawa.aki@gmail.com Date: Fri Feb 12 20:30:14 2021 +0900
server: Prevent unloading a registry hive while the key is in use.
Otherwise, RegUnLoadKey(HKEY_USERS, "S-1-5-21-0-0-0-1000") erases all HKCU registry. The call is actually done by a certain installer.
Signed-off-by: Akihiro Sagawa sagawa.aki@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
server/registry.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/server/registry.c b/server/registry.c index 9b9295b1b68..74da4d1d9a4 100644 --- a/server/registry.c +++ b/server/registry.c @@ -2261,7 +2261,10 @@ DECL_HANDLER(unload_registry) get_req_path( &name, !req->parent ); if ((key = open_key( parent, &name, access, req->attributes ))) { - delete_key( key, 1 ); /* FIXME */ + if (key->obj.handle_count) + set_error( STATUS_CANNOT_DELETE ); + else + delete_key( key, 1 ); /* FIXME */ release_object( key ); } release_object( parent );