getopt_long() returns int
Use the right type for variable, as getopt_long() returns an int. Using
char is not a problem on x86, but prevents the return of -1 in case of
parameter reading end. This led to infinite loops on ARM, which is fixed
through the variable type change. An additional counter measure (showing
the problem) would be to print and error out when reading an undefined
parameter, which is added here as well.
This has been forgotten when making the same change for getopt() in
cf9854601c ("getopt() returns int").
This commit is contained in:
@@ -69,7 +69,7 @@ int main (int argc, char * const argv[])
|
||||
{NULL, 0, NULL, 0}
|
||||
};
|
||||
int option_index;
|
||||
char option_short;
|
||||
int option_short;
|
||||
|
||||
/*
|
||||
* Read command line parameters
|
||||
@@ -94,6 +94,8 @@ int main (int argc, char * const argv[])
|
||||
output_dir = optarg;
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "unknown option %d, exit\n", option_short);
|
||||
exit(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ int main (int argc, char * const argv[])
|
||||
{NULL, 0, NULL, 0}
|
||||
};
|
||||
int option_index;
|
||||
char option_short;
|
||||
int option_short;
|
||||
|
||||
/*
|
||||
* Read command line parameters
|
||||
@@ -94,6 +94,8 @@ int main (int argc, char * const argv[])
|
||||
output_dir = optarg;
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "unknown option %d, exit\n", option_short);
|
||||
exit(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user