Hugh McMaster : reg: Fail if the data for REG_MULTI_SZ begins with a separator.
Module: wine Branch: master Commit: a573f237d0749440aa38c7ff0b8e69c58ee41028 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a573f237d0749440aa38c7ff0b... Author: Hugh McMaster <hugh.mcmaster(a)outlook.com> Date: Mon Feb 29 15:54:22 2016 +1100 reg: Fail if the data for REG_MULTI_SZ begins with a separator. Signed-off-by: Hugh McMaster <hugh.mcmaster(a)outlook.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- programs/reg/reg.c | 2 +- programs/reg/tests/reg.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/programs/reg/reg.c b/programs/reg/reg.c index bb1764e..bad9274 100644 --- a/programs/reg/reg.c +++ b/programs/reg/reg.c @@ -300,7 +300,7 @@ static LPBYTE get_regdata(LPWSTR data, DWORD reg_type, WCHAR separator, DWORD *r else buffer[destindex] = data[i]; - if (destindex && !buffer[destindex - 1] && !buffer[destindex]) + if (destindex && !buffer[destindex - 1] && (!buffer[destindex] || destindex == 1)) { HeapFree(GetProcessHeap(), 0, buffer); output_message(STRING_INVALID_STRING); diff --git a/programs/reg/tests/reg.c b/programs/reg/tests/reg.c index b5ae277..d03fb2c 100644 --- a/programs/reg/tests/reg.c +++ b/programs/reg/tests/reg.c @@ -357,7 +357,7 @@ static void test_add(void) run_reg_exe("reg add HKCU\\" KEY_BASE " /t REG_MULTI_SZ /v multi9 /s \"#\" /d \"two##strings\" /f", &r); ok(r == REG_EXIT_FAILURE, "got exit code %u\n", r); run_reg_exe("reg add HKCU\\" KEY_BASE " /t REG_MULTI_SZ /v multi10 /s \"#\" /d \"#a\" /f", &r); - todo_wine ok(r == REG_EXIT_FAILURE, "got exit code %u\n", r); + ok(r == REG_EXIT_FAILURE, "got exit code %u\n", r); run_reg_exe("reg add HKCU\\" KEY_BASE " /t REG_MULTI_SZ /v multi11 /s \"#\" /d \"a#\" /f", &r); ok(r == REG_EXIT_SUCCESS, "got exit code %u, expected 0\n", r); @@ -371,7 +371,7 @@ static void test_add(void) ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r); run_reg_exe("reg add HKCU\\" KEY_BASE " /v multi14 /t REG_MULTI_SZ /d \"\\0a\" /f", &r); - todo_wine ok(r == REG_EXIT_FAILURE, "got exit code %u, expected 1\n", r); + ok(r == REG_EXIT_FAILURE, "got exit code %u, expected 1\n", r); run_reg_exe("reg add HKCU\\" KEY_BASE " /v multi15 /t REG_MULTI_SZ /d \"a\\0\" /f", &r); ok(r == REG_EXIT_SUCCESS, "got exit code %u, expected 0\n", r);
participants (1)
-
Alexandre Julliard