drm/amd/display: Check null pointers before using them
PATCH 1/1 drm/amd/display: Check null pointers before using them
From: Alex Hung <[email protected]>
[ Upstream commit 1ff12bcd7deaeed25efb5120433c6a45dd5504a8 ]
[WHAT & HOW]
These pointers are null checked previously in the same function, indicating they might be null as reported by Coverity. As a result, they need to be checked when used again.
This fixes 3 FORWARD_NULL issue reported by Coverity.
[ Backport to 6.6.y: kept the applicable dm_state and dc_link guards; the
vulnerable acrtc loop shape is absent. ]
---
Hi Greg, Sasha, and drm amd maintainers,
I am working through the small CVE backports still missing from 6.6.y. This one addresses CVE-2024-49922. It prevents the applicable HDCP path from dereferencing a NULL dc_link.
The fix is already present in 6.12.y, 6.18.y, and 7.2.y, but not in 6.6.y. This fix also affects 6.1.y, which will need a separate backport; this submission contains only the 6.6.y patch.
The target-specific adjustment is recorded in the bracketed note above.
Could you please queue it for 6.6.y?
CVE: CVE-2024-49922
Upstream: 1ff12bcd7deaeed25efb5120433c6a45dd5504a8
AI assistance: An LLM helped identify, adapt, and validate this backport; I reviewed the resulting code and validation evidence.
Thanks,
Artem Dinaburg
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +10 -3
@@ -6630,6 +6630,9 @@ create_validate_stream_for_sink(struct amdgpu_dm_connector *aconnector,int requested_bpc = drm_state ? drm_state->max_requested_bpc :8 ;enum dc_status dc_result =DC_OK ; +if (!dm_state) +return NULL ; + do { stream = create_stream_for_sink(aconnector, drm_mode, dm_state, old_stream,
@@ -8859,9 +8862,13 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)DRM_INFO ("[HDCP_DM] hdcp_update_display enable_encryption = %x\n" , enable_encryption); -hdcp_update_display ( - adev->dm.hdcp_workqueue, aconnector->dc_link->link_index, aconnector, - new_con_state->hdcp_content_type, enable_encryption); +if (aconnector->dc_link) +hdcp_update_display ( + adev->dm.hdcp_workqueue, + aconnector->dc_link->link_index, + aconnector, + new_con_state->hdcp_content_type, + enable_encryption); } }
Signature · 1 line
2.39.5
Quoted 2 lines
This one addresses CVE-2024-49922. It prevents the applicable HDCP path from dereferencing a NULL
dc_link.
Queued for 6.6, thanks.
Signature · 2 lines
Thanks, Sasha