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:50:26 +0000 (17:50 +0200)
commitd40e6a98aa5519ffde6751ba10ab2ec17cc746dc
tree55914fd69d8e9ce20feee5d6157388e9bd92108e
parent5248114b9bcfa5bbbb2965a98f97110684faec7e
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