fixed the usage of getopt_* ()

pull/1328/head
philsmd 7 years ago
parent 175931575c
commit 42ee091772
No known key found for this signature in database
GPG Key ID: 4F25D016D9D6A8AF

@ -23,6 +23,7 @@
- Fixed a problem with changed current working directory, for instance by using --restore together with --remove - Fixed a problem with changed current working directory, for instance by using --restore together with --remove
- Fixed a memory problem that occured when the OpenCL folder was not found and e.g. the shared and session folder were the same - Fixed a memory problem that occured when the OpenCL folder was not found and e.g. the shared and session folder were the same
- Fixed the version number used in the restore file header - Fixed the version number used in the restore file header
- Fixed the parsing of command line options. It doesn't show two times the same error about an invalid option anymore.
## ##
## Improvements ## Improvements

@ -248,7 +248,7 @@ int user_options_getopt (hashcat_ctx_t *hashcat_ctx, int argc, char **argv)
option_index = 0; option_index = 0;
while (((c = getopt_long (argc, argv, short_options, long_options, &option_index)) != -1) && optopt == 0) while ((c = getopt_long (argc, argv, short_options, long_options, &option_index)) != -1)
{ {
switch (c) switch (c)
{ {
@ -291,14 +291,18 @@ int user_options_getopt (hashcat_ctx_t *hashcat_ctx, int argc, char **argv)
return -1; return -1;
} }
}
}
if (optopt != 0) break;
{
event_log_error (hashcat_ctx, "Invalid argument specified.");
return -1; case '?':
{
event_log_error (hashcat_ctx, "Invalid argument specified.");
return -1;
}
break;
}
} }
optind = 1; optind = 1;
@ -306,7 +310,7 @@ int user_options_getopt (hashcat_ctx_t *hashcat_ctx, int argc, char **argv)
option_index = 0; option_index = 0;
while (((c = getopt_long (argc, argv, short_options, long_options, &option_index)) != -1) && optopt == 0) while ((c = getopt_long (argc, argv, short_options, long_options, &option_index)) != -1)
{ {
switch (c) switch (c)
{ {
@ -416,23 +420,9 @@ int user_options_getopt (hashcat_ctx_t *hashcat_ctx, int argc, char **argv)
case IDX_CUSTOM_CHARSET_2: user_options->custom_charset_2 = optarg; break; case IDX_CUSTOM_CHARSET_2: user_options->custom_charset_2 = optarg; break;
case IDX_CUSTOM_CHARSET_3: user_options->custom_charset_3 = optarg; break; case IDX_CUSTOM_CHARSET_3: user_options->custom_charset_3 = optarg; break;
case IDX_CUSTOM_CHARSET_4: user_options->custom_charset_4 = optarg; break; case IDX_CUSTOM_CHARSET_4: user_options->custom_charset_4 = optarg; break;
default:
{
event_log_error (hashcat_ctx, "Invalid argument specified.");
return -1;
}
} }
} }
if (optopt != 0)
{
event_log_error (hashcat_ctx, "Invalid argument specified.");
return -1;
}
user_options->hc_bin = argv[0]; user_options->hc_bin = argv[0];
user_options->hc_argc = argc - optind; user_options->hc_argc = argc - optind;

Loading…
Cancel
Save