[PATCH 4/5] reg: Fail if the data argument for REG_DWORD begins with a minus sign

Hugh McMaster hugh.mcmaster at outlook.com
Tue Feb 16 00:12:08 CST 2016


Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
 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 f676e77..3c98fc0 100644
--- a/programs/reg/reg.c
+++ b/programs/reg/reg.c
@@ -244,7 +244,7 @@ static LPBYTE get_regdata(LPWSTR data, DWORD reg_type, WCHAR separator, DWORD *r
             LPWSTR rest;
             DWORD val;
             val = strtoulW(data, &rest, 0);
-            if (*rest) {
+            if (*rest || data[0] == '-') {
                 output_message(STRING_MISSING_INTEGER);
                 break;
             }
diff --git a/programs/reg/tests/reg.c b/programs/reg/tests/reg.c
index fe68274..5f1d16a 100644
--- a/programs/reg/tests/reg.c
+++ b/programs/reg/tests/reg.c
@@ -290,9 +290,9 @@ static void test_add(void)
     verify_reg(hkey, "dword8", REG_DWORD, &dword, sizeof(dword), 0);
 
     run_reg_exe("reg add HKCU\\" KEY_BASE " /t REG_DWORD /v dword9 /f /d -1", &r);
-    todo_wine ok(r == REG_EXIT_FAILURE || broken(r == REG_EXIT_SUCCESS /* WinXP */), "got exit code %u\n", r);
+    ok(r == REG_EXIT_FAILURE || broken(r == REG_EXIT_SUCCESS /* WinXP */), "got exit code %u\n", r);
     run_reg_exe("reg add HKCU\\" KEY_BASE " /t REG_DWORD /v dword10 /f /d -0x1", &r);
-    todo_wine ok(r == REG_EXIT_FAILURE || broken(r == REG_EXIT_SUCCESS /* WinXP */), "got exit code %u\n", r);
+    ok(r == REG_EXIT_FAILURE || broken(r == REG_EXIT_SUCCESS /* WinXP */), "got exit code %u\n", r);
 
     run_reg_exe("reg add HKCU\\" KEY_BASE " /v dword8 /t REG_dword /d 0x01ffffffff /f", &r);
     todo_wine ok(r == REG_EXIT_FAILURE || broken(r == REG_EXIT_SUCCESS /* WinXP */), "got exit code %d\n", r);
-- 
1.9.1




More information about the wine-patches mailing list