Commit 797520db authored by Hugh McMaster's avatar Hugh McMaster Committed by Alexandre Julliard

reg: Fail if a system key has a trailing backslash but no subkey path.

parent 6d2ab37a
...@@ -234,9 +234,6 @@ BOOL parse_registry_key(const WCHAR *key, HKEY *root, WCHAR **path) ...@@ -234,9 +234,6 @@ BOOL parse_registry_key(const WCHAR *key, HKEY *root, WCHAR **path)
if (!sane_path(key)) if (!sane_path(key))
return FALSE; return FALSE;
*path = wcschr(key, '\\');
if (*path) (*path)++;
*root = path_get_rootkey(key); *root = path_get_rootkey(key);
if (!*root) if (!*root)
{ {
...@@ -244,6 +241,19 @@ BOOL parse_registry_key(const WCHAR *key, HKEY *root, WCHAR **path) ...@@ -244,6 +241,19 @@ BOOL parse_registry_key(const WCHAR *key, HKEY *root, WCHAR **path)
return FALSE; return FALSE;
} }
*path = wcschr(key, '\\');
if (!*path)
return TRUE;
(*path)++;
if (!**path)
{
output_message(STRING_INVALID_SYSTEM_KEY);
return FALSE;
}
return TRUE; return TRUE;
} }
......
...@@ -311,12 +311,12 @@ static void test_key_formats(void) ...@@ -311,12 +311,12 @@ static void test_key_formats(void)
/* Test validity of trailing backslash after system key */ /* Test validity of trailing backslash after system key */
run_reg_exe("reg add HKCU\\ /v Value1 /t REG_SZ /d foo /f", &r); run_reg_exe("reg add HKCU\\ /v Value1 /t REG_SZ /d foo /f", &r);
todo_wine ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r); ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
todo_wine verify_reg_nonexist(HKEY_CURRENT_USER, "Value1"); verify_reg_nonexist(HKEY_CURRENT_USER, "Value1");
run_reg_exe("reg add HKEY_CURRENT_USER\\ /v Value2 /t REG_SZ /d bar /f", &r); run_reg_exe("reg add HKEY_CURRENT_USER\\ /v Value2 /t REG_SZ /d bar /f", &r);
todo_wine ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r); ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
todo_wine verify_reg_nonexist(HKEY_CURRENT_USER, "Value2"); verify_reg_nonexist(HKEY_CURRENT_USER, "Value2");
} }
static void test_add(void) static void test_add(void)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment