From: Torge Matthies openglfreak@googlemail.com
Signed-off-by: Torge Matthies openglfreak@googlemail.com --- server/registry.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/server/registry.c b/server/registry.c index 33cda84788f..cd9f1596686 100644 --- a/server/registry.c +++ b/server/registry.c @@ -1894,6 +1894,7 @@ void init_registry(void) '0','0','9'}; static const WCHAR system[] = {'S','y','s','t','e','m'}; static const WCHAR ccs[] = {'C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t'}; + static const WCHAR cs001[] = {'C','o','n','t','r','o','l','S','e','t','0','0','1'}; static const WCHAR cs001_path[] = {'\','R','E','G','I','S','T','R','Y','\', 'M','a','c','h','i','n','e','\', 'S','y','s','t','e','m','\', @@ -1904,6 +1905,7 @@ void init_registry(void) static const struct unicode_str perflib_name = { perflib, sizeof(perflib) }; static const struct unicode_str system_name = { system, sizeof(system) }; static const struct unicode_str ccs_name = { ccs, sizeof(ccs) }; + static const struct unicode_str cs001_name = { cs001, sizeof(cs001) };
WCHAR *current_user_path; struct unicode_str current_user_str; @@ -1986,11 +1988,17 @@ void init_registry(void) struct key *subkey; subkey = create_key_object( &key->obj, &ccs_name, OBJ_OPENIF | OBJ_OPENLINK, REG_OPTION_CREATE_LINK, current_time, NULL ); + if (subkey && !(subkey->flags & KEY_SYMLINK)) + { + rename_key( subkey, &cs001_name ); + release_object( subkey ); + subkey = create_key_object( &key->obj, &ccs_name, OBJ_OPENLINK, REG_OPTION_CREATE_LINK, current_time, + NULL ); + } release_object( key ); if (subkey) { - if (subkey->flags & KEY_SYMLINK) - set_value( subkey, &symlink_str, REG_LINK, cs001_path, sizeof(cs001_path) ); + set_value( subkey, &symlink_str, REG_LINK, cs001_path, sizeof(cs001_path) ); release_object( subkey ); } }