OSDN Git Service

gpio: fix NULL-deref-on-deregistration regression
authorJohan Hovold <johan@kernel.org>
Mon, 1 Mar 2021 09:05:18 +0000 (10:05 +0100)
committerBartosz Golaszewski <bgolaszewski@baylibre.com>
Mon, 8 Mar 2021 10:59:17 +0000 (11:59 +0100)
commita6112998ee45514def58200a7914706c0703f3d7
tree38fa3e70278fe1c3624f6fd90240f78355de72ad
parent542104ee0cafe789cc07291b71818c143df8d623
gpio: fix NULL-deref-on-deregistration regression

Fix a NULL-pointer deference when deregistering the gpio character
device that was introduced by the recent stub-driver hack. When the new
"driver" is unbound as part of deregistration, driver core clears the
driver-data pointer which is used to retrieve the struct gpio_device in
its release callback.

Fix this by using container_of() in the release callback as should have
been done all along.

Fixes: 4731210c09f5 ("gpiolib: Bind gpio_device to a driver to enable fw_devlink=on by default")
Cc: Saravana Kannan <saravanak@google.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reported-by: syzbot+d27b4c8adbbff70fbfde@syzkaller.appspotmail.com
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
drivers/gpio/gpiolib.c