https://git.reactos.org/?p=reactos.git;a=commitdiff;h=67493a4006273804ece9d…
commit 67493a4006273804ece9d4c1ae2a939ed979cce3
Author:     winesync <ros-dev(a)reactos.org>
AuthorDate: Sun Jan 16 21:22:50 2022 +0100
Commit:     Thomas Csovcsity <thc.fr13nd(a)gmail.com>
CommitDate: Sun Jun 19 13:06:36 2022 +0200
    [WINESYNC] reg: Fail if one or more arguments follow a help switch.
    Signed-off-by: Hugh McMaster <hugh.mcmaster(a)outlook.com>
    Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
    wine commit id 6c466296a7629487930d4d6e4fa7d7ae66a7bf61 by Hugh McMaster
<hugh.mcmaster(a)outlook.com>
    manual adjustment needed
---
 base/applications/cmdutils/reg/reg.c  | 13 ++++++++-----
 modules/rostests/winetests/reg/copy.c |  8 ++++----
 sdk/tools/winesync/reg.cfg            |  2 +-
 3 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/base/applications/cmdutils/reg/reg.c b/base/applications/cmdutils/reg/reg.c
index d4c915d5c6e..7099cba594e 100644
--- a/base/applications/cmdutils/reg/reg.c
+++ b/base/applications/cmdutils/reg/reg.c
@@ -349,14 +349,12 @@ int __cdecl wmain(int argc, WCHAR *argvW[])
         return 1;
     }
     else if (argc == 2) /* Valid operation, no arguments supplied */
-    {
-        output_message(STRING_INVALID_SYNTAX);
-        output_message(STRING_FUNC_HELP, _wcsupr(argvW[1]));
-        return 1;
-    }
+        goto invalid;
     if (is_help_switch(argvW[2]))
     {
+        if (argc > 3) goto invalid;
+
         output_message(op_help);
         output_message(STRING_REG_VIEW_USAGE);
         return 0;
@@ -378,4 +376,9 @@ int __cdecl wmain(int argc, WCHAR *argvW[])
         return reg_import(argc, argvW);
     return reg_query(argc, argvW);
+
+invalid:
+    output_message(STRING_INVALID_SYNTAX);
+    output_message(STRING_FUNC_HELP, wcsupr(argvW[1]));
+    return 1;
 }
diff --git a/modules/rostests/winetests/reg/copy.c b/modules/rostests/winetests/reg/copy.c
index ecd3cc5b29d..5ddcc2c0ffa 100644
--- a/modules/rostests/winetests/reg/copy.c
+++ b/modules/rostests/winetests/reg/copy.c
@@ -37,16 +37,16 @@ static void test_command_syntax(void)
     ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
     run_reg_exe("reg copy /? /f", &r);
-    todo_wine ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
+    ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
     run_reg_exe("reg copy /h /f", &r);
-    todo_wine ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
+    ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
     run_reg_exe("reg copy /? /s", &r);
-    todo_wine ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
+    ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
     run_reg_exe("reg copy /h /s", &r);
-    todo_wine ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
+    ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
     run_reg_exe("reg copy /f", &r);
     ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
diff --git a/sdk/tools/winesync/reg.cfg b/sdk/tools/winesync/reg.cfg
index ce8560ddeb3..066ee20b473 100644
--- a/sdk/tools/winesync/reg.cfg
+++ b/sdk/tools/winesync/reg.cfg
@@ -4,4 +4,4 @@ directories:
 files:
   programs/reg/resource.h: base/applications/cmdutils/reg/resource.h
 tags:
-  wine: ac32dd8abcdd93f5428ba93c8aff7f0bb5a7c2f2
+  wine: 6c466296a7629487930d4d6e4fa7d7ae66a7bf61