| From 16c5419f3c5188d59506f13173d45ab7a79e6187 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 22 Apr 2022 11:28:54 +0800 |
| Subject: drm/rockchip: vop: fix possible null-ptr-deref in vop_bind() |
| |
| From: Yang Yingliang <yangyingliang@huawei.com> |
| |
| [ Upstream commit f8c242908ad15bbd604d3bcb54961b7d454c43f8 ] |
| |
| It will cause null-ptr-deref in resource_size(), if platform_get_resource() |
| returns NULL, move calling resource_size() after devm_ioremap_resource() that |
| will check 'res' to avoid null-ptr-deref. |
| |
| Fixes: 2048e3286f34 ("drm: rockchip: Add basic drm driver") |
| Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> |
| Signed-off-by: Heiko Stuebner <heiko@sntech.de> |
| Link: https://patchwork.freedesktop.org/patch/msgid/20220422032854.2995175-1-yangyingliang@huawei.com |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c |
| index 5bed63eee5f0..050f9a59ed54 100644 |
| --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c |
| +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c |
| @@ -1524,10 +1524,10 @@ static int vop_bind(struct device *dev, struct device *master, void *data) |
| vop_win_init(vop); |
| |
| res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| - vop->len = resource_size(res); |
| vop->regs = devm_ioremap_resource(dev, res); |
| if (IS_ERR(vop->regs)) |
| return PTR_ERR(vop->regs); |
| + vop->len = resource_size(res); |
| |
| vop->regsbak = devm_kzalloc(dev, vop->len, GFP_KERNEL); |
| if (!vop->regsbak) |
| -- |
| 2.35.1 |
| |