Hugh McMaster : reg/tests: Try exporting registry values with escaped null characters.

Alexandre Julliard julliard at winehq.org
Wed Mar 10 14:58:47 CST 2021


Module: wine
Branch: master
Commit: 53fd4df85f004597161a26d86333755e7cbff0ff
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=53fd4df85f004597161a26d86333755e7cbff0ff

Author: Hugh McMaster <hugh.mcmaster at outlook.com>
Date:   Wed Mar 10 23:25:22 2021 +1100

reg/tests: Try exporting registry values with escaped null characters.

Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 programs/reg/tests/export.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/programs/reg/tests/export.c b/programs/reg/tests/export.c
index 32c99e36376..2c7ba88fb59 100644
--- a/programs/reg/tests/export.c
+++ b/programs/reg/tests/export.c
@@ -168,6 +168,16 @@ static void test_export(void)
         "\"\\\\foo\\\\bar\"=\"\"\r\n\r\n"
         "[HKEY_CURRENT_USER\\" KEY_BASE "\\https://winehq.org]\r\n\r\n";
 
+    const char *escaped_null_test =
+        "\xef\xbb\xbfWindows Registry Editor Version 5.00\r\n\r\n"
+        "[HKEY_CURRENT_USER\\" KEY_BASE "]\r\n"
+        "\"Wine5a\"=\"\\\\0\"\r\n"
+        "\"Wine5b\"=\"\\\\0\\\\0\"\r\n"
+        "\"Wine5c\"=\"Value1\\\\0\"\r\n"
+        "\"Wine5d\"=\"Value2\\\\0\\\\0\\\\0\\\\0\"\r\n"
+        "\"Wine5e\"=\"Value3\\\\0Value4\"\r\n"
+        "\"Wine5f\"=\"\\\\0Value5\"\r\n\r\n";
+
     delete_tree(HKEY_CURRENT_USER, KEY_BASE);
     verify_key_nonexist(HKEY_CURRENT_USER, KEY_BASE);
 
@@ -402,6 +412,21 @@ static void test_export(void)
     ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
     ok(compare_export("file.reg", slashes_test, TODO_REG_COMPARE), "compare_export() failed\n");
     delete_tree(HKEY_CURRENT_USER, KEY_BASE);
+
+    /* Test escaped null characters */
+    add_key(HKEY_CURRENT_USER, KEY_BASE, &hkey);
+    add_value(hkey, "Wine5a", REG_SZ, "\\0", 3);
+    add_value(hkey, "Wine5b", REG_SZ, "\\0\\0", 5);
+    add_value(hkey, "Wine5c", REG_SZ, "Value1\\0", 9);
+    add_value(hkey, "Wine5d", REG_SZ, "Value2\\0\\0\\0\\0", 15);
+    add_value(hkey, "Wine5e", REG_SZ, "Value3\\0Value4", 15);
+    add_value(hkey, "Wine5f", REG_SZ, "\\0Value5", 9);
+    close_key(hkey);
+
+    run_reg_exe("reg export HKEY_CURRENT_USER\\" KEY_BASE " file.reg /y", &r);
+    ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
+    ok(compare_export("file.reg", escaped_null_test, 0), "compare_export() failed\n");
+    delete_tree(HKEY_CURRENT_USER, KEY_BASE);
 }
 
 START_TEST(export)




More information about the wine-cvs mailing list