Commit e53b9b24 authored by Alex Hung's avatar Alex Hung Committed by quzicheng
Browse files

drm/amd/display: Check link_index before accessing dc->links[]

mainline inclusion
from mainline-v6.11
commit 8aa2864044b9d13e95fe224f32e808afbf79ecdf
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAU9QT
CVE: CVE-2024-46813

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8aa2864044b9d13e95fe224f32e808afbf79ecdf



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

[WHY & HOW]
dc->links[] has max size of MAX_LINKS and NULL is return when trying to
access with out-of-bound index.

This fixes 3 OVERRUN and 1 RESOURCE_LEAK issues reported by Coverity.

Reviewed-by: default avatarHarry Wentland <harry.wentland@amd.com>
Acked-by: default avatarTom Chung <chiahsuan.chung@amd.com>
Signed-off-by: default avatarAlex Hung <alex.hung@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Conflicts:
	amd/display/dc/core/dc_link_exports.c
[MAX_LINKS not defined, use MAX_PIPES * 2 + 2.]
Signed-off-by: default avatarZicheng Qu <quzicheng@huawei.com>
parent 3f69c178
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -37,6 +37,9 @@
#include "dce/dce_i2c.h"
struct dc_link *dc_get_link_at_index(struct dc *dc, uint32_t link_index)
{
	if (link_index >= MAX_PIPES * 2 + 2)
		return NULL;

	return dc->links[link_index];
}