summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYang Yingliang <yangyingliang@huawei.com>2022-10-24 16:45:11 +0800
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2022-11-01 08:48:13 +0000
commit65f20301607d07ee279b0804d11a05a62a6c1a1c (patch)
tree5760dc14b65c090688336684e66cc8bdffdee793
parentca1547ab15f48dc81624183ae17a2fd1bad06dfc (diff)
downloadlinux-65f20301607d07ee279b0804d11a05a62a6c1a1c.tar.gz
linux-65f20301607d07ee279b0804d11a05a62a6c1a1c.tar.bz2
linux-65f20301607d07ee279b0804d11a05a62a6c1a1c.zip
iio: adc: at91_adc: fix possible memory leak in at91_adc_allocate_trigger()
If iio_trigger_register() returns error, it should call iio_trigger_free() to give up the reference that hold in iio_trigger_alloc(), so that it can call iio_trig_release() to free memory when the refcount hit to 0. Fixes: 0e589d5fb317 ("ARM: AT91: IIO: Add AT91 ADC driver.") Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Link: https://lore.kernel.org/r/20221024084511.815096-1-yangyingliang@huawei.com Cc: <Stable@vger.kernel.org> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
-rw-r--r--drivers/iio/adc/at91_adc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c
index 532daaa6f943..366e252ebeb0 100644
--- a/drivers/iio/adc/at91_adc.c
+++ b/drivers/iio/adc/at91_adc.c
@@ -634,8 +634,10 @@ static struct iio_trigger *at91_adc_allocate_trigger(struct iio_dev *idev,
trig->ops = &at91_adc_trigger_ops;
ret = iio_trigger_register(trig);
- if (ret)
+ if (ret) {
+ iio_trigger_free(trig);
return NULL;
+ }
return trig;
}