summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2012-07-11 11:28:00 +0200
committerJonathan Cameron <jic23@kernel.org>2012-07-12 18:50:26 +0200
commit3879089ba3421bc8136025837b1a532729643371 (patch)
tree2d5ca5fd4e00739415468763c2f11b702518b7ac
parentiio: Fix inkern remove incorrect put of device (diff)
downloadlinux-3879089ba3421bc8136025837b1a532729643371.tar.xz
linux-3879089ba3421bc8136025837b1a532729643371.zip
staging:iio:max1363: Don't free uninitialized variable
It is possible that on one of the error paths we are going to try to free 'rxbuf', even though it has not been allocated yet, which cause the following warning: drivers/staging/iio/adc/max1363_ring.c: In function 'max1363_trigger_handler': drivers/staging/iio/adc/max1363_ring.c:87:7: warning: 'rxbuf' may be used uninitialized in this function Reported-by: Fengguang Wu <wfg@linux.intel.com> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
-rw-r--r--drivers/staging/iio/adc/max1363_ring.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/staging/iio/adc/max1363_ring.c b/drivers/staging/iio/adc/max1363_ring.c
index bf6b0c2eb9e9..774ae1b63550 100644
--- a/drivers/staging/iio/adc/max1363_ring.c
+++ b/drivers/staging/iio/adc/max1363_ring.c
@@ -74,7 +74,7 @@ static irqreturn_t max1363_trigger_handler(int irq, void *p)
else
b_sent = i2c_master_recv(st->client, rxbuf, numvals);
if (b_sent < 0)
- goto done;
+ goto done_free;
time_ns = iio_get_time_ns();
@@ -82,9 +82,10 @@ static irqreturn_t max1363_trigger_handler(int irq, void *p)
memcpy(rxbuf + d_size - sizeof(s64), &time_ns, sizeof(time_ns));
iio_push_to_buffer(indio_dev->buffer, rxbuf, time_ns);
+done_free:
+ kfree(rxbuf);
done:
iio_trigger_notify_done(indio_dev->trig);
- kfree(rxbuf);
return IRQ_HANDLED;
}