[PATCH 2/6] irqchip/gic-v3-its: Fix memleak in its_probe_one()

Marc Zyngier maz at kernel.org
Wed Jun 17 05:07:54 PDT 2026


On Tue, 16 Jun 2026 02:39:10 +0100,
Kemeng Shi <shikemeng at huaweicloud.com> wrote:
> 
> 在 2026/6/15 16:59:14, Marc Zyngier 写道:
> > On Mon, 15 Jun 2026 04:29:06 +0100,
> > Kemeng Shi <shikemeng at huaweicloud.com> wrote:
> >>
> >> Fix collection leak when its_init_domain() failed in its_probe_one().
> >>
> >> Signed-off-by: Kemeng Shi <shikemeng at huaweicloud.com>
> >> ---
> >>  drivers/irqchip/irq-gic-v3-its.c | 10 +++++++++-
> >>  1 file changed, 9 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
> >> index 2b7b546c43c8..df26ddc97ae2 100644
> >> --- a/drivers/irqchip/irq-gic-v3-its.c
> >> +++ b/drivers/irqchip/irq-gic-v3-its.c
> >> @@ -3032,6 +3032,12 @@ static int its_alloc_collections(struct its_node *its)
> >>  	return 0;
> >>  }
> >>  
> >> +static void its_free_collections(struct its_node *its)
> >> +{
> >> +	kfree(its->collections);
> >> +	its->collections = NULL;
> >> +}
> > 
> > Why do we need an extra helper for something that has a single calling
> > spot? Why is it important to set collections to NULL, given that we're
> > about to free the structure without even looking further?
> > 
> The extra helper is added for symmetry with its_alloc_collections(), keeping
> allocation/deallocation logic paired.

But there is zero logic here. None. it is a call to kfree(), just
that, and we don't need any additional abstraction.

> In this way, we need to only modified
> allocation/deallocation function if more member is added for collections.

Well, when we get there, we can always add an abstraction.

> Setting collections to NULL is a personal habit to quickly catch use-after-free
> of collections. Could drop this which is not that import.

I don't see the point of doing that.

	M.

-- 
Without deviation from the norm, progress is not possible.



More information about the linux-arm-kernel mailing list