Patch "iio: adis_buffer: Fix out-of-bounds memory access" has been added to the 4.4-stable tree
This is a note to let you know that I've just added the patch titled
iio: adis_buffer: Fix out-of-bounds memory access
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
iio-adis_buffer-fix-out-of-bounds-memory-access.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
d590faf9e8f8509a0a0aa79c38e87fcc6b913248Mon Sep 17 00:00:00 2001
From: Lars-Peter Clausen <[email protected]>
Date: Fri, 27 Nov 2015 14:55:56 +0100
Subject: iio: adis_buffer: Fix out-of-bounds memory access
From: Lars-Peter Clausen <[email protected]>
commit d590faf9e8f8509a0a0aa79c38e87fcc6b913248 upstream.
The SPI tx and rx buffers are both supposed to be scan_bytes amount of bytes large and a common allocation is used to allocate both buffers. This puts the beginning of the tx buffer scan_bytes bytes after the rx buffer. The initialization of the tx buffer pointer is done adding scan_bytes to the beginning of the rx buffer, but since the rx buffer is of type __be16 this will actually add two times as much and the tx buffer ends up pointing after the allocated buffer.
Fix this by using scan_count, which is scan_bytes / 2, instead of scan_bytes when initializing the tx buffer pointer.
--- drivers/iio/imu/adis_buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/iio/imu/adis_buffer.c +1 -1
@@ -43,7 +43,7 @@ int adis_update_scan_mode(struct iio_devreturn -ENOMEM ; rx = adis->buffer; - tx = rx + indio_dev->scan_bytes; + tx = rx + scan_count;spi_message_init (&adis->msg);
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/iio-adis_buffer-fix-out-of-bounds-memory-access.patch