diff --git a/src/aio/aio.c b/src/aio/aio.c index de92d76..791cf46 100644 --- a/src/aio/aio.c +++ b/src/aio/aio.c @@ -37,6 +37,11 @@ static int raw_bits; static mraa_result_t aio_get_valid_fp(mraa_aio_context dev) { + if (dev == NULL) { + syslog(LOG_ERR, "aio: get_valid_fp: context is invalid"); + return MRAA_ERROR_INVALID_HANDLE; + } + if (IS_FUNC_DEFINED(dev, aio_get_valid_fp)) { return dev->advance_func->aio_get_valid_fp(dev); } diff --git a/src/gpio/gpio.c b/src/gpio/gpio.c index 7803881..5283937 100644 --- a/src/gpio/gpio.c +++ b/src/gpio/gpio.c @@ -238,6 +238,11 @@ mraa_gpio_wait_interrupt(int fd static void* mraa_gpio_interrupt_handler(void* arg) { + if (arg == NULL) { + syslog(LOG_ERR, "gpio: interrupt_handler: context is invalid"); + return NULL; + } + mraa_gpio_context dev = (mraa_gpio_context) arg; int fp = -1; mraa_result_t ret; diff --git a/src/iio/iio.c b/src/iio/iio.c index 9163f4a..b55eb25 100644 --- a/src/iio/iio.c +++ b/src/iio/iio.c @@ -465,7 +465,7 @@ mraa_iio_event_poll(mraa_iio_context dev, struct iio_event_data* data) if (ret == -1 || event_fd == -1) return MRAA_ERROR_UNSPECIFIED; - ret = read(event_fd, data, sizeof(struct iio_event_data)); + read(event_fd, data, sizeof(struct iio_event_data)); close(event_fd); return MRAA_SUCCESS;