diff --git a/src/iio/iio.c b/src/iio/iio.c index 1d02983..26dba06 100644 --- a/src/iio/iio.c +++ b/src/iio/iio.c @@ -443,8 +443,12 @@ mraa_iio_event_poll(mraa_iio_context dev, struct iio_event_data* data) snprintf(bu, MAX_SIZE, IIO_SLASH_DEV "%d", dev->num); fd = open(bu, 0); - ret = ioctl(fd, IIO_GET_EVENT_FD_IOCTL, &event_fd); - close(fd); + if (fd != -1) { + ret = ioctl(fd, IIO_GET_EVENT_FD_IOCTL, &event_fd); + close(fd); + } else { + return MRAA_ERROR_UNSPECIFIED; + } if (ret == -1 || event_fd == -1) return MRAA_ERROR_UNSPECIFIED;