OSDN Git Service

drm/amd/display: Fix the uninitialized variable in enable_stream_features()
authorYizhuo Zhai <yzhai003@ucr.edu>
Sat, 18 Dec 2021 04:22:23 +0000 (20:22 -0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 30 Dec 2021 13:54:45 +0000 (08:54 -0500)
In function enable_stream_features(), the variable "old_downspread.raw"
could be uninitialized if core_link_read_dpcd() fails, however, it is
used in the later if statement, and further, core_link_write_dpcd()
may write random value, which is potentially unsafe.

Fixes: 6016cd9dba0f ("drm/amd/display: add helper for enabling mst stream features")
Cc: stable@vger.kernel.org
Signed-off-by: Yizhuo Zhai <yzhai003@ucr.edu>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_link.c

index ee3c1c9..dc1380b 100644 (file)
@@ -1818,6 +1818,8 @@ static void enable_stream_features(struct pipe_ctx *pipe_ctx)
                union down_spread_ctrl old_downspread;
                union down_spread_ctrl new_downspread;
 
+               memset(&old_downspread, 0, sizeof(old_downspread));
+
                core_link_read_dpcd(link, DP_DOWNSPREAD_CTRL,
                                &old_downspread.raw, sizeof(old_downspread));