staging:iio:accel:adis16201 overflow tx buffer.
authorJonathan Cameron <jic23@cam.ac.uk>
Fri, 12 Aug 2011 15:55:34 +0000 (16:55 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 23 Aug 2011 20:28:43 +0000 (13:28 -0700)
Smatch caught bug.

Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/iio/accel/adis16201_ring.c

index 66e708ddf8b2139250c8861c0803574964eb788e..a745d5debc207ff8875e38dcc7412ba33ead1907 100644 (file)
@@ -38,10 +38,12 @@ static int adis16201_read_ring_data(struct iio_dev *indio_dev, u8 *rx)
                xfers[i].cs_change = 1;
                xfers[i].len = 2;
                xfers[i].delay_usecs = 20;
-               xfers[i].tx_buf = st->tx + 2 * i;
-               st->tx[2 * i] = ADIS16201_READ_REG(ADIS16201_SUPPLY_OUT +
-                                                  2 * i);
-               st->tx[2 * i + 1] = 0;
+               if (i < ADIS16201_OUTPUTS) {
+                       xfers[i].tx_buf = st->tx + 2 * i;
+                       st->tx[2 * i] = ADIS16201_READ_REG(ADIS16201_SUPPLY_OUT +
+                                                          2 * i);
+                       st->tx[2 * i + 1] = 0;
+               }
                if (i >= 1)
                        xfers[i].rx_buf = rx + 2 * (i - 1);
                spi_message_add_tail(&xfers[i], &msg);