OSDN Git Service

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)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 12 May 2020 17:45:33 +0000 (19:45 +0200)
commitd7faa8ffb6be57bf8233a4b5a636d76b83c51ce7
tree0ad1e1b7b351746f5fec2b2f49f787c8da0e6233
parentc4f333b758ab4d8d4bc643e8bddac96082e0c379
pinctrl: rockchip: fix memleak in rockchip_dt_node_to_map

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>
drivers/pinctrl/pinctrl-rockchip.c