Commit dc8f5264 authored by Lars-Peter Clausen's avatar Lars-Peter Clausen Committed by Greg Kroah-Hartman
Browse files

staging:iio:events: Make sure userspace buffer is large enough



Make sure that the userspace buffer is large enough to hold a iio_event_data
struct before writing to it.

Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: default avatarJonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 0403e0d6
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -169,8 +169,11 @@ static ssize_t iio_event_chrdev_read(struct file *filep,
{
	struct iio_event_interface *ev_int = filep->private_data;
	struct iio_detected_event_list *el;
	size_t len = sizeof(el->ev);
	int ret;
	size_t len;

	if (count < len)
		return -EINVAL;

	mutex_lock(&ev_int->event_list_lock);
	if (list_empty(&ev_int->det_events)) {
@@ -192,7 +195,6 @@ static ssize_t iio_event_chrdev_read(struct file *filep,
	el = list_first_entry(&ev_int->det_events,
			      struct iio_detected_event_list,
			      list);
	len = sizeof el->ev;
	if (copy_to_user(buf, &(el->ev), len)) {
		ret = -EFAULT;
		goto error_mutex_unlock;