util/amdfwtool/amdfwread: Fix incorrect option index
index I/O argument to getopt_long is not the index to argv. Instead it is an index into the optlong array corresponding to the parsed option. Also getopt() uses a global variable optind to track the index of the next argument to be processed. Use the optindex variable as an index to extract the filename from argv. BUG=None TEST=Build and use amdfwread to read the Soft-fuse bits from Guybrush BIOS image. Observed no changes before and after the changes. Change-Id: I33c74a0c8e12c5af76954524cf7294b7541d286b Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/66553 Reviewed-by: Robert Zieba <robertzieba@google.com> Reviewed-by: Raul Rangel <rrangel@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
7dd42da9a0
commit
0dd3cf4534
|
@ -179,19 +179,18 @@ int main(int argc, char **argv)
|
||||||
char *fw_file = NULL;
|
char *fw_file = NULL;
|
||||||
|
|
||||||
int selected_functions = 0;
|
int selected_functions = 0;
|
||||||
int index = 0;
|
|
||||||
while (1) {
|
while (1) {
|
||||||
int opt = getopt_long(argc, argv, optstring, long_options, &index);
|
int opt = getopt_long(argc, argv, optstring, long_options, NULL);
|
||||||
|
|
||||||
if (opt == -1) {
|
if (opt == -1) {
|
||||||
index++;
|
if (optind != (argc - 1)) {
|
||||||
if (index >= argc) {
|
/* Print usage if one and only one option i.e. filename is
|
||||||
/* Print usage if we didn't get any arguments */
|
not found. */
|
||||||
print_usage();
|
print_usage();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
fw_file = argv[index];
|
fw_file = argv[optind];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue