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

From: Joshua Crofts

Date: Fri May 22 2026 - 08:19:53 EST


On Fri, 22 May 2026 at 13:53, 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>
> ---
> 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;

NACK, this is still introducing the same bug, device_initialize() still hasn't
been called if the code jumps to free_descs.

You're trying to fix something that has already been addressed, see
Jonathan's response to your v1.

Please note - wait at least 24 hours before sending a new version of
your patch, the more reviews you get the better.

--
Kind regards

CJD