Re: [PATCH v2] iio: trigger: fix memory leak in viio_trigger_alloc()

From: Jonathan Cameron

Date: Fri May 22 2026 - 08:06:18 EST


On Fri, 22 May 2026 17:15:55 +0530
Ashwin Gundarapu <linuxuser509@xxxxxxxxxxx> wrote:

> From: Ashwin Gundarapu <linuxuser509@xxxxxxxxxxx>
> Date: Fri, 22 May 2026 17:11:00 +0530
> Subject: [PATCH] iio: trigger: fix memory leak in viio_trigger_alloc()
>
> Separate error paths for before/after device_initialize().
>
> The free_trig label was used for both early errors (before
> device_initialize) and late errors (after device_initialize).
>
> Replace the unified kfree() with:
> - kfree() for early errors (free_trig)
> - put_device() for late errors (free_descs)
>
> This prevents put_device() on an uninitialized device and
> ensures proper reference counting cleanup.
>
> Signed-off-by: Ashwin Gundarapu <linuxuser509@xxxxxxxxxxx>
Even for a simple fix, wait longer between iterations.

As I just replied to v1, your tree is old. This won't even apply
and the bug has been correctly fixed in upstream.

> ---
> drivers/iio/industrialio-trigger.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/iio/industrialio-trigger.c b/drivers/iio/industrialio-trigger.c
> index 9c72e7ae996c..39208c65e6c1 100644
> --- a/drivers/iio/industrialio-trigger.c
> +++ b/drivers/iio/industrialio-trigger.c
> @@ -597,9 +597,11 @@ struct iio_trigger *viio_trigger_alloc(struct device *parent,
>
> free_descs:
> irq_free_descs(trig->subirq_base, CONFIG_IIO_CONSUMERS_PER_TRIGGER);
> -free_trig:
> put_device(&trig->dev);
> return NULL;
> +free_trig:
> + kfree(trig);
> + return NULL;
> }
>
> /**
> --
> 2.43.0
>
>
>