Module: wine Branch: master Commit: 474361ecb489fdedd78dd6be2ed20c2e031bf9af URL: http://source.winehq.org/git/wine.git/?a=commit;h=474361ecb489fdedd78dd6be2e...
Author: Hugh McMaster hugh.mcmaster@outlook.com Date: Tue Feb 16 17:12:08 2016 +1100
reg: Fail if the data argument for REG_DWORD begins with a minus sign.
Signed-off-by: Hugh McMaster hugh.mcmaster@outlook.com Signed-off-by: Alexandre Julliard julliard@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 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 ba9fbed..0077101 100644 --- a/programs/reg/tests/reg.c +++ b/programs/reg/tests/reg.c @@ -284,9 +284,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);