Re: [PATCH] irq/generic-chip: Fix memory leak of domain->name

From: Thomas Gleixner
Date: Wed Sep 27 2017 - 09:30:11 EST


On Wed, 27 Sep 2017, Jeffy Chen wrote:

> Free domain->name when IRQ_DOMAIN_NAME_ALLOCATED been set.

I can see that from the patch, but you fail to explain what the problem
is.

It's actually more than just a memory leak. If the domain gets destroyed
then the domain free code would try to free d->name which might be a string
constant .....

> + if (d->flags & IRQ_DOMAIN_NAME_ALLOCATED) {
> + kfree(d->name);
> + d->flags &= ~IRQ_DOMAIN_NAME_ALLOCATED;
> + }
> d->name = name;

I don't think that this is the proper thing to do. There is no reason why
the domain should have the same name as the irq chip. So we rather should
do:

if (!d->name)
d->name = name;

Along with a proper comment.

Thanks,

tglx