| From 4cd140bda6494543f1c1b0ccceceaa44b676eef6 Mon Sep 17 00:00:00 2001 |
| From: Stefan Windfeldt-Prytz <stefan.windfeldt@axis.com> |
| Date: Thu, 15 Feb 2018 15:02:53 +0100 |
| Subject: iio: buffer: check if a buffer has been set up when poll is called |
| |
| From: Stefan Windfeldt-Prytz <stefan.windfeldt@axis.com> |
| |
| commit 4cd140bda6494543f1c1b0ccceceaa44b676eef6 upstream. |
| |
| If no iio buffer has been set up and poll is called return 0. |
| Without this check there will be a null pointer dereference when |
| calling poll on a iio driver without an iio buffer. |
| |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Stefan Windfeldt-Prytz <stefan.windfeldt@axis.com> |
| Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/iio/industrialio-buffer.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/iio/industrialio-buffer.c |
| +++ b/drivers/iio/industrialio-buffer.c |
| @@ -174,7 +174,7 @@ unsigned int iio_buffer_poll(struct file |
| struct iio_dev *indio_dev = filp->private_data; |
| struct iio_buffer *rb = indio_dev->buffer; |
| |
| - if (!indio_dev->info) |
| + if (!indio_dev->info || rb == NULL) |
| return 0; |
| |
| poll_wait(filp, &rb->pollq, wait); |