Commit 86fb1ae7 authored by 倪琛's avatar 倪琛 Committed by Wang Hai
Browse files

drm/qxl: Add check for drm_cvt_mode

stable inclusion
from stable-v5.10.224
commit 4e87f592a46bb804d8f833da6ce702ae4b55053f
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAKQ5J
CVE: CVE-2024-43829

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



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

[ Upstream commit 7bd09a2db0f617377027a2bb0b9179e6959edff3 ]

Add check for the return value of drm_cvt_mode() and return the error if
it fails in order to avoid NULL pointer dereference.

Fixes: 1b043677 ("drm/qxl: add qxl_add_mode helper function")
Signed-off-by: default avatarChen Ni <nichen@iscas.ac.cn>
Reviewed-by: default avatarHeng Qi <hengqi@linux.alibaba.com>
Signed-off-by: default avatarMaxime Ripard <mripard@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240621071031.1987974-1-nichen@iscas.ac.cn


Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarWang Hai <wanghai38@huawei.com>
parent f20c0371
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -232,6 +232,9 @@ static int qxl_add_mode(struct drm_connector *connector,
		return 0;

	mode = drm_cvt_mode(dev, width, height, 60, false, false, false);
	if (!mode)
		return 0;

	if (preferred)
		mode->type |= DRM_MODE_TYPE_PREFERRED;
	mode->hdisplay = width;