Hugh McMaster : reg: Abort 'delete' operation when parsing command-line arguments that are not switches.
Alexandre Julliard
julliard at winehq.org
Fri Apr 2 16:10:12 CDT 2021
Module: wine
Branch: master
Commit: 51e83dec2959ce332264223832abc1a5f09dbf34
URL: https://source.winehq.org/git/wine.git/?a=commit;h=51e83dec2959ce332264223832abc1a5f09dbf34
Author: Hugh McMaster <hugh.mcmaster at outlook.com>
Date: Fri Apr 2 22:26:54 2021 +1100
reg: Abort 'delete' operation when parsing command-line arguments that are not switches.
Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
programs/reg/delete.c | 60 ++++++++++++++++++++++++++-------------------------
1 file changed, 31 insertions(+), 29 deletions(-)
diff --git a/programs/reg/delete.c b/programs/reg/delete.c
index 519d4b880ec..b23b14e8dab 100644
--- a/programs/reg/delete.c
+++ b/programs/reg/delete.c
@@ -118,38 +118,40 @@ int reg_delete(int argc, WCHAR *argvW[])
for (i = 3; i < argc; i++)
{
- if (argvW[i][0] == '/' || argvW[i][0] == '-')
- {
- WCHAR *str = &argvW[i][1];
+ WCHAR *str;
- if (!lstrcmpiW(str, L"va"))
- {
- if (value_all) goto invalid;
- value_all = TRUE;
- continue;
- }
- else if (!lstrcmpiW(str, L"ve"))
- {
- if (value_empty) goto invalid;
- value_empty = TRUE;
- continue;
- }
- else if (!str[0] || str[1])
- goto invalid;
+ if (argvW[i][0] != '/' && argvW[i][0] != '-')
+ goto invalid;
- switch (towlower(*str))
- {
- case 'v':
- if (value_name || !(value_name = argvW[++i]))
- goto invalid;
- break;
- case 'f':
- if (force) goto invalid;
- force = TRUE;
- break;
- default:
+ str = &argvW[i][1];
+
+ if (!lstrcmpiW(str, L"va"))
+ {
+ if (value_all) goto invalid;
+ value_all = TRUE;
+ continue;
+ }
+ else if (!lstrcmpiW(str, L"ve"))
+ {
+ if (value_empty) goto invalid;
+ value_empty = TRUE;
+ continue;
+ }
+ else if (!str[0] || str[1])
+ goto invalid;
+
+ switch (towlower(*str))
+ {
+ case 'v':
+ if (value_name || !(value_name = argvW[++i]))
goto invalid;
- }
+ break;
+ case 'f':
+ if (force) goto invalid;
+ force = TRUE;
+ break;
+ default:
+ goto invalid;
}
}
More information about the wine-cvs
mailing list