pinctrl: samsung: Handle memory allocation failure during wakeup banks init
authorKrzysztof Kozlowski <krzk@kernel.org>
Tue, 23 May 2017 18:41:40 +0000 (20:41 +0200)
committerKrzysztof Kozlowski <krzk@kernel.org>
Wed, 7 Jun 2017 18:40:48 +0000 (20:40 +0200)
Check if kmemdup failed during wakeup banks initialization.  Otherwise
NULL pointer would be stored under "irq_chip" member of bank and later
dereferenced in interrupt handler.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
drivers/pinctrl/samsung/pinctrl-exynos.c

index 727462cc670cce22b63289111cff7d72e6a8230a..96068b40d32abf9928e1b85f2e3a7befeb8b117d 100644 (file)
@@ -479,6 +479,8 @@ int exynos_eint_wkup_init(struct samsung_pinctrl_drv_data *d)
                if (match) {
                        irq_chip = kmemdup(match->data,
                                sizeof(*irq_chip), GFP_KERNEL);
+                       if (!irq_chip)
+                               return -ENOMEM;
                        wkup_np = np;
                        break;
                }