Hugh McMaster : reg: Fail if /v is passed without an argument.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Mar 15 10:12:16 CDT 2016
Module: wine
Branch: master
Commit: 735dca607409b7409b8adc4dd3e126c49d4603c4
URL: http://source.winehq.org/git/wine.git/?a=commit;h=735dca607409b7409b8adc4dd3e126c49d4603c4
Author: Hugh McMaster <hugh.mcmaster at outlook.com>
Date: Tue Mar 15 23:23:55 2016 +1100
reg: Fail if /v is passed without an argument.
Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
programs/reg/reg.c | 24 +++++++++++++++++++++---
programs/reg/tests/reg.c | 13 +++++++++++++
2 files changed, 34 insertions(+), 3 deletions(-)
diff --git a/programs/reg/reg.c b/programs/reg/reg.c
index 1167ccb..29be40e 100644
--- a/programs/reg/reg.c
+++ b/programs/reg/reg.c
@@ -601,7 +601,13 @@ int wmain(int argc, WCHAR *argvW[])
for (i = 1; i < argc; i++)
{
if (!lstrcmpiW(argvW[i], slashVW))
- value_name = argvW[++i];
+ {
+ if (!(value_name = argvW[++i]))
+ {
+ output_message(STRING_INVALID_CMDLINE);
+ return 1;
+ }
+ }
else if (!lstrcmpiW(argvW[i], slashVEW))
value_empty = TRUE;
else if (!lstrcmpiW(argvW[i], slashTW))
@@ -652,7 +658,13 @@ int wmain(int argc, WCHAR *argvW[])
for (i = 1; i < argc; i++)
{
if (!lstrcmpiW(argvW[i], slashVW))
- value_name = argvW[++i];
+ {
+ if (!(value_name = argvW[++i]))
+ {
+ output_message(STRING_INVALID_CMDLINE);
+ return 1;
+ }
+ }
else if (!lstrcmpiW(argvW[i], slashVEW))
value_empty = TRUE;
else if (!lstrcmpiW(argvW[i], slashVAW))
@@ -683,7 +695,13 @@ int wmain(int argc, WCHAR *argvW[])
for (i = 1; i < argc; i++)
{
if (!lstrcmpiW(argvW[i], slashVW))
- value_name = argvW[++i];
+ {
+ if (!(value_name = argvW[++i]))
+ {
+ output_message(STRING_INVALID_CMDLINE);
+ return 1;
+ }
+ }
else if (!lstrcmpiW(argvW[i], slashVEW))
value_empty = TRUE;
else if (!lstrcmpiW(argvW[i], slashSW))
diff --git a/programs/reg/tests/reg.c b/programs/reg/tests/reg.c
index 6a55537..d1db5c4 100644
--- a/programs/reg/tests/reg.c
+++ b/programs/reg/tests/reg.c
@@ -519,6 +519,19 @@ static void test_v_flags(void)
run_reg_exe("reg delete HKCU\\" KEY_BASE " /ve /va", &r);
ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
+
+ /* No /v argument */
+ run_reg_exe("reg add HKCU\\" KEY_BASE " /v", &r);
+ ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
+
+ run_reg_exe("reg add HKCU\\" KEY_BASE " /d Test /f /v", &r);
+ ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
+
+ run_reg_exe("reg delete HKCU\\" KEY_BASE " /v", &r);
+ ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
+
+ run_reg_exe("reg delete HKCU\\" KEY_BASE " /f /v", &r);
+ ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
}
START_TEST(reg)
More information about the wine-cvs
mailing list