gpio: use kzalloc to allocate gpio_device
authorJosh Cartwright <joshc@ni.com>
Wed, 17 Feb 2016 22:44:15 +0000 (16:44 -0600)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 18 Feb 2016 19:45:25 +0000 (20:45 +0100)
commit969f07b445d1c30479f53ce6818e1263043b999a
tree0093989a761093fb02a7fef7b3e6b9e131186c70
parentaaf2b3afb93102411412f9dad8d84b13fc7f7edb
gpio: use kzalloc to allocate gpio_device

The use of kmalloc() to allocate the gpio_device leaves the contained struct
device object in an unknown state.  Calling dev_set_name() on a struct device
of unknown state can trigger the free() of an invalid pointer, as seen in the
following backtrace (collected by Tony Lindgren):

  kfree
  kobject_set_name_vargs
  dev_set_name
  gpiochip_add_data
  omap_gpio_probe
  platform_drv_probe
  ...

Reported-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reported-by: Michael Welling <mwelling@ieee.org>
Reported-by: Tony Lindgren <tony@atomide.com>
Tested-by: Michael Welling <mwelling@ieee.org>
Tested-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Josh Cartwright <joshc@ni.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib.c