Commit 5e1ca6e3 authored by Andy Yan's avatar Andy Yan Committed by Xiaomeng Zhang
Browse files

drm/rockchip: vop: Fix a dereferenced before check warning

stable inclusion
from stable-v6.6.63
commit 1e53059729691ca4d905118258b9fbd17d854174
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IB956I
CVE: CVE-2024-53129

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=1e53059729691ca4d905118258b9fbd17d854174



--------------------------------

[ Upstream commit ab1c793f457f740ab7108cc0b1340a402dbf484d ]

The 'state' can't be NULL, we should check crtc_state.

Fix warning:
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1096
vop_plane_atomic_async_check() warn: variable dereferenced before check
'state' (see line 1077)

Fixes: 5ddb0bd4 ("drm/atomic: Pass the full state to planes async atomic check and update")
Signed-off-by: default avatarAndy Yan <andy.yan@rock-chips.com>
Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20241021072818.61621-1-andyshrk@163.com


Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarXiaomeng Zhang <zhangxiaomeng13@huawei.com>
parent aed150e2
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1076,10 +1076,10 @@ static int vop_plane_atomic_async_check(struct drm_plane *plane,
	if (!plane->state->fb)
		return -EINVAL;

	if (state)
		crtc_state = drm_atomic_get_existing_crtc_state(state,
								new_plane_state->crtc);
	else /* Special case for asynchronous cursor updates. */
	crtc_state = drm_atomic_get_existing_crtc_state(state, new_plane_state->crtc);

	/* Special case for asynchronous cursor updates. */
	if (!crtc_state)
		crtc_state = plane->crtc->state;

	return drm_atomic_helper_check_plane_state(plane->state, crtc_state,