Module: wine Branch: master Commit: bd278b1983d0913b28f85cfd897e1e6484bd5f35 URL: http://source.winehq.org/git/wine.git/?a=commit;h=bd278b1983d0913b28f85cfd89... Author: Hugh McMaster <hugh.mcmaster(a)outlook.com> Date: Tue Mar 15 23:23:56 2016 +1100 reg: Fail if multiple /v switches are passed in. Signed-off-by: Hugh McMaster <hugh.mcmaster(a)outlook.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- programs/reg/reg.c | 6 +++--- programs/reg/tests/reg.c | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/programs/reg/reg.c b/programs/reg/reg.c index 29be40e..9dbce32 100644 --- a/programs/reg/reg.c +++ b/programs/reg/reg.c @@ -602,7 +602,7 @@ int wmain(int argc, WCHAR *argvW[]) { if (!lstrcmpiW(argvW[i], slashVW)) { - if (!(value_name = argvW[++i])) + if (value_name || !(value_name = argvW[++i])) { output_message(STRING_INVALID_CMDLINE); return 1; @@ -659,7 +659,7 @@ int wmain(int argc, WCHAR *argvW[]) { if (!lstrcmpiW(argvW[i], slashVW)) { - if (!(value_name = argvW[++i])) + if (value_name || !(value_name = argvW[++i])) { output_message(STRING_INVALID_CMDLINE); return 1; @@ -696,7 +696,7 @@ int wmain(int argc, WCHAR *argvW[]) { if (!lstrcmpiW(argvW[i], slashVW)) { - if (!(value_name = argvW[++i])) + if (value_name || !(value_name = argvW[++i])) { output_message(STRING_INVALID_CMDLINE); return 1; diff --git a/programs/reg/tests/reg.c b/programs/reg/tests/reg.c index d1db5c4..927288d 100644 --- a/programs/reg/tests/reg.c +++ b/programs/reg/tests/reg.c @@ -532,6 +532,13 @@ static void test_v_flags(void) run_reg_exe("reg delete HKCU\\" KEY_BASE " /f /v", &r); ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r); + + /* Multiple /v switches */ + run_reg_exe("reg add HKCU\\" KEY_BASE " /v Wine /t REG_DWORD /d 0x1 /v Test /f", &r); + ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r); + + run_reg_exe("reg delete HKCU\\" KEY_BASE " /v Wine /v Test /f", &r); + ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r); } START_TEST(reg)