Module: wine Branch: master Commit: 65717d67260fb6f723dcfe9bf9008d249348c2e7 URL: https://source.winehq.org/git/wine.git/?a=commit;h=65717d67260fb6f723dcfe9bf...
Author: Hugh McMaster hugh.mcmaster@outlook.com Date: Mon Apr 23 13:37:28 2018 +0000
reg: Null terminate hex-formatted REG_SZ data if necessary.
Signed-off-by: Hugh McMaster hugh.mcmaster@outlook.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
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 f2ce80e..779ea28 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 5004414..aba71b7 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);