From: Alexandru Moise <00moses.alexander00@gmail.com> Date: Tue, 19 Sep 2017 20:04:12 +0000 (+0200) Subject: genirq: Check __free_irq() return value for NULL X-Git-Tag: v4.14-rc3~7^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2827a418ca1b23e432e62c9b3d0e7cf3255dfe88;p=platform%2Fkernel%2Flinux-rpi3.git 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: Alexandru Moise <00moses.alexander00@gmail.com> Signed-off-by: Thomas Gleixner Link: https://lkml.kernel.org/r/20170919200412.GA29985@gmail.com --- diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 573dc52..d00132b 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -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;