Hugh McMaster : reg: Fail if the data for REG_MULTI_SZ begins with a separator.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Mar 1 10:44:06 CST 2016


Module: wine
Branch: master
Commit: a573f237d0749440aa38c7ff0b8e69c58ee41028
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a573f237d0749440aa38c7ff0b8e69c58ee41028

Author: Hugh McMaster <hugh.mcmaster at 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 at outlook.com>
Signed-off-by: Alexandre Julliard <julliard at 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);




More information about the wine-cvs mailing list