[PATCH 2/2] reg: Null terminate hex-formatted REG_SZ data if necessary

Hugh McMaster hugh.mcmaster at outlook.com
Mon Apr 23 08:37:28 CDT 2018


Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
 programs/reg/import.c    | 3 ++-
 programs/reg/tests/reg.c | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/programs/reg/import.c b/programs/reg/import.c
index f2ce80e7cb..779ea2863b 100644
--- a/programs/reg/import.c
+++ b/programs/reg/import.c
@@ -409,7 +409,8 @@ static void free_parser_data(struct parser *parser)
 
 static void prepare_hex_string_data(struct parser *parser)
 {
-    if (parser->data_type == REG_EXPAND_SZ || parser->data_type == REG_MULTI_SZ)
+    if (parser->data_type == REG_EXPAND_SZ || parser->data_type == REG_MULTI_SZ ||
+        parser->data_type == REG_SZ)
     {
         if (parser->is_unicode)
         {
diff --git a/programs/reg/tests/reg.c b/programs/reg/tests/reg.c
index 5004414450..aba71b7b87 100644
--- a/programs/reg/tests/reg.c
+++ b/programs/reg/tests/reg.c
@@ -4668,7 +4668,7 @@ static void test_export(void)
     err = RegQueryValueExA(hkey, "Wine4d", NULL, &type, (BYTE *)&buffer, &size);
     ok(err == ERROR_SUCCESS, "RegQueryValueExA failed: %d\n", err);
     ok(type == REG_SZ, "got wrong type %u, expected %u\n", type, REG_SZ);
-    todo_wine ok(size == 5 || broken(size == 4) /* WinXP */, "got wrong size %u, expected 5\n", size);
+    ok(size == 5 || broken(size == 4) /* WinXP */, "got wrong size %u, expected 5\n", size);
     ok(memcmp(buffer, "\0abc", size) == 0, "got wrong data\n");
     dword = 0x100;
     verify_reg(hkey, "Wine4e", REG_DWORD, &dword, sizeof(dword), 0);
-- 
2.17.0




More information about the wine-devel mailing list