From eafdbdd13b19d9f0ddfa3309eb38d7ec2a22986f Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 20 Nov 2015 19:56:40 +0900 Subject: [PATCH] advapi32: Don't try to create the registry root. Signed-off-by: Alexandre Julliard --- dlls/advapi32/registry.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dlls/advapi32/registry.c b/dlls/advapi32/registry.c index 798f93dc578..4f33fe6aca6 100644 --- a/dlls/advapi32/registry.c +++ b/dlls/advapi32/registry.c @@ -141,10 +141,16 @@ static NTSTATUS create_key( HKEY *retkey, ACCESS_MASK access, OBJECT_ATTRIBUTES if (status == STATUS_OBJECT_NAME_NOT_FOUND) { + static const WCHAR registry_root[] = {'\\','R','e','g','i','s','t','r','y','\\'}; WCHAR *buffer = attr->ObjectName->Buffer; DWORD attrs, pos = 0, i = 0, len = attr->ObjectName->Length / sizeof(WCHAR); UNICODE_STRING str; + /* don't try to create registry root */ + if (!attr->RootDirectory && len > sizeof(registry_root)/sizeof(WCHAR) && + !memicmpW( buffer, registry_root, sizeof(registry_root)/sizeof(WCHAR))) + i += sizeof(registry_root)/sizeof(WCHAR); + while (i < len && buffer[i] != '\\') i++; if (i == len && !force_wow32) return status; -- 2.11.4.GIT