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

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
...@@ -1643,6 +1643,10 @@ const void *free_irq(unsigned int irq, void *dev_id) ...@@ -1643,6 +1643,10 @@ const void *free_irq(unsigned int irq, void *dev_id)
#endif #endif
action = __free_irq(irq, dev_id); action = __free_irq(irq, dev_id);
if (!action)
return NULL;
devname = action->name; devname = action->name;
kfree(action); kfree(action);
return devname; return devname;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment