提交 adefb7ab 编写于 作者: Z Zhou Qingyang 提交者: Zheng Zengkai

drm/amd/display: Fix a NULL pointer dereference in amdgpu_dm_connector_add_common_modes()

stable inclusion
from stable-v5.10.110
commit 19a7eba284790cfbba2945deb2363cf03ce41648
bugzilla: https://gitee.com/openeuler/kernel/issues/I574AL

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

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

[ Upstream commit 588a7017 ]

In amdgpu_dm_connector_add_common_modes(), amdgpu_dm_create_common_mode()
is assigned to mode and is passed to drm_mode_probed_add() directly after
that. drm_mode_probed_add() passes &mode->head to list_add_tail(), and
there is a dereference of it in list_add_tail() without recoveries, which
could lead to NULL pointer dereference on failure of
amdgpu_dm_create_common_mode().

Fix this by adding a NULL check of mode.

This bug was found by a static analyzer.

Builds with 'make allyesconfig' show no new warnings,
and our static analyzer no longer warns about this code.

Fixes: e7b07cee ("drm/amd/display: Merge amdgpu_dm_types and amdgpu_dm")
Signed-off-by: NZhou Qingyang <zhou1615@umn.edu>
Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: NSasha Levin <sashal@kernel.org>
Signed-off-by: NYu Liao <liaoyu15@huawei.com>
Reviewed-by: NWei Li <liwei391@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 c11ab92c
...@@ -6396,6 +6396,9 @@ static void amdgpu_dm_connector_add_common_modes(struct drm_encoder *encoder, ...@@ -6396,6 +6396,9 @@ static void amdgpu_dm_connector_add_common_modes(struct drm_encoder *encoder,
mode = amdgpu_dm_create_common_mode(encoder, mode = amdgpu_dm_create_common_mode(encoder,
common_modes[i].name, common_modes[i].w, common_modes[i].name, common_modes[i].w,
common_modes[i].h); common_modes[i].h);
if (!mode)
continue;
drm_mode_probed_add(connector, mode); drm_mode_probed_add(connector, mode);
amdgpu_dm_connector->num_modes++; amdgpu_dm_connector->num_modes++;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册