pinctrl: rockchip: fix memleak in rockchip_dt_node_to_map
authorDafna Hirschfeld <dafna.hirschfeld@collabora.com>
Wed, 6 May 2020 10:09:03 +0000 (12:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Jun 2020 15:48:44 +0000 (17:48 +0200)
commit577a2b4b5c9345428be1864878f060775cd7bb1b
tree41cdd29011d06263be6928ee4ec1d8d11a700622
parentb7fcc8e32dc514ecbe0ec259cbe9800d53c0c0ab
pinctrl: rockchip: fix memleak in rockchip_dt_node_to_map

[ Upstream commit d7faa8ffb6be57bf8233a4b5a636d76b83c51ce7 ]

In function rockchip_dt_node_to_map, a new_map variable is
allocated by:

new_map = devm_kcalloc(pctldev->dev, map_num, sizeof(*new_map),
       GFP_KERNEL);

This uses devres and attaches new_map to the pinctrl driver.
This cause a leak since new_map is not released when the probed
driver is removed. Fix it by using kcalloc to allocate new_map
and free it in `rockchip_dt_free_map`

Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20200506100903.15420-1-dafna.hirschfeld@collabora.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/pinctrl/pinctrl-rockchip.c