[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