Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2827a418 authored by Alexandru Moise's avatar Alexandru Moise Committed by Thomas Gleixner
Browse files

genirq: Check __free_irq() return value for NULL



__free_irq() can return a NULL irqaction for example when trying to free
already-free IRQ, but the callsite unconditionally dereferences the
returned pointer.

Fix this by adding a check and return NULL.

Signed-off-by: default avatarAlexandru Moise <00moses.alexander00@gmail.com>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20170919200412.GA29985@gmail.com
parent e19b205b
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1643,6 +1643,10 @@ const void *free_irq(unsigned int irq, void *dev_id)
#endif

	action = __free_irq(irq, dev_id);

	if (!action)
		return NULL;

	devname = action->name;
	kfree(action);
	return devname;