using only px4_getopt() and never the unsafe getopt()

using only <px4_getopt.h> as include, cleanup related includes
added check that all the option are valid (myoptind >= argc). if there are invalid options on some script that might now lead not to run commands
This commit is contained in:
bazooka joe
2019-02-21 09:45:45 +01:00
committed by Beat Küng
parent 3db901b238
commit 922c19aa9c
20 changed files with 131 additions and 50 deletions
+13 -3
View File
@@ -33,6 +33,8 @@
#include "ADIS16477.hpp"
#include <px4_getopt.h>
#define ADIS16477_DEVICE_PATH_ACCEL "/dev/adis16477_accel"
#define ADIS16477_DEVICE_PATH_GYRO "/dev/adis16477_gyro"
@@ -215,10 +217,13 @@ int
adis16477_main(int argc, char *argv[])
{
enum Rotation rotation = ROTATION_NONE;
int myoptind = 1;
int ch;
const char *myoptarg = nullptr;
/* start options */
while ((ch = getopt(argc, argv, "R:")) != EOF) {
while ((ch = px4_getopt(argc, argv, "R:", &myoptind, &myoptarg)) != EOF) {
switch (ch) {
case 'R':
rotation = (enum Rotation)atoi(optarg);
@@ -226,11 +231,16 @@ adis16477_main(int argc, char *argv[])
default:
adis16477::usage();
exit(0);
return 0;
}
}
const char *verb = argv[optind];
if (myoptind >= argc) {
adis16477::usage();
return -1;
}
const char *verb = argv[myoptind];
/*
* Start/load the driver.