diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2012-07-11 11:28:00 +0200 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2012-07-12 18:50:26 +0200 |
commit | 3879089ba3421bc8136025837b1a532729643371 (patch) | |
tree | 2d5ca5fd4e00739415468763c2f11b702518b7ac | |
parent | iio: Fix inkern remove incorrect put of device (diff) | |
download | linux-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.c | 5 |
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; } |