From 009b2d4d6b0e2b829c992d5de1679430e997c510 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Mon, 4 Jun 2018 14:30:47 +0200 Subject: [PATCH] mpu9250: add argc check and use px4_getopt --- src/drivers/imu/mpu9250/main.cpp | 26 +++++++++++++++----------- src/drivers/imu/mpu9250/mpu9250.cpp | 1 - 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/drivers/imu/mpu9250/main.cpp b/src/drivers/imu/mpu9250/main.cpp index 73c047d425..72151f694d 100644 --- a/src/drivers/imu/mpu9250/main.cpp +++ b/src/drivers/imu/mpu9250/main.cpp @@ -51,7 +51,7 @@ #include #include #include -#include +#include #include #include @@ -479,13 +479,14 @@ usage() int mpu9250_main(int argc, char *argv[]) { - enum MPU9250_BUS busid = MPU9250_BUS_ALL; + int myoptind = 1; int ch; - bool external = false; + const char *myoptarg = nullptr; + + enum MPU9250_BUS busid = MPU9250_BUS_ALL; enum Rotation rotation = ROTATION_NONE; - /* jump over start/off/etc and look at options first */ - while ((ch = getopt(argc, argv, "XISstR:")) != EOF) { + while ((ch = px4_getopt(argc, argv, "XISstR:", &myoptind, &myoptarg)) != EOF) { switch (ch) { case 'X': busid = MPU9250_BUS_I2C_EXTERNAL; @@ -508,22 +509,25 @@ mpu9250_main(int argc, char *argv[]) break; case 'R': - rotation = (enum Rotation)atoi(optarg); + rotation = (enum Rotation)atoi(myoptarg); break; default: mpu9250::usage(); - exit(0); + return 0; } } - external = (busid == MPU9250_BUS_I2C_EXTERNAL || busid == MPU9250_BUS_SPI_EXTERNAL); + if (myoptind >= argc) { + mpu9250::usage(); + return -1; + } - const char *verb = argv[optind]; + bool external = busid == MPU9250_BUS_I2C_EXTERNAL || busid == MPU9250_BUS_SPI_EXTERNAL; + const char *verb = argv[myoptind]; /* * Start/load the driver. - */ if (!strcmp(verb, "start")) { mpu9250::start(busid, rotation, external); @@ -566,5 +570,5 @@ mpu9250_main(int argc, char *argv[]) } mpu9250::usage(); - exit(1); + return 0; } diff --git a/src/drivers/imu/mpu9250/mpu9250.cpp b/src/drivers/imu/mpu9250/mpu9250.cpp index c66b3db433..0d5b6b715a 100644 --- a/src/drivers/imu/mpu9250/mpu9250.cpp +++ b/src/drivers/imu/mpu9250/mpu9250.cpp @@ -57,7 +57,6 @@ #include #include #include -#include #include #include