From 66628a4cf133e2a01622c22411509e7a4df6722b Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Wed, 21 Sep 2016 14:23:48 -0300 Subject: [PATCH] aerofc: forbid gpio changes We export an "empty" table, but there's no protection when doing ioctl(). --- src/drivers/px4fmu/fmu.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/drivers/px4fmu/fmu.cpp b/src/drivers/px4fmu/fmu.cpp index ed82756f5b..b513a7d413 100644 --- a/src/drivers/px4fmu/fmu.cpp +++ b/src/drivers/px4fmu/fmu.cpp @@ -2560,7 +2560,11 @@ PX4FMU::gpio_ioctl(struct file *filp, int cmd, unsigned long arg) case GPIO_SET_OUTPUT_HIGH: case GPIO_SET_INPUT: case GPIO_SET_ALT_1: +#ifdef CONFIG_ARCH_BOARD_AEROFC_V1 + ret = -EINVAL; +#else gpio_set_function(arg, cmd); +#endif break; case GPIO_SET_ALT_2: @@ -2571,11 +2575,19 @@ PX4FMU::gpio_ioctl(struct file *filp, int cmd, unsigned long arg) case GPIO_SET: case GPIO_CLEAR: +#ifdef CONFIG_ARCH_BOARD_AEROFC_V1 + ret = -EINVAL; +#else gpio_write(arg, cmd); +#endif break; case GPIO_GET: +#ifdef CONFIG_ARCH_BOARD_AEROFC_V1 + ret = -EINVAL; +#else *(uint32_t *)arg = gpio_read(); +#endif break; default: