| From c75519a5b2ba3a487360d064eeaa0e95aa05ba78 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 23 Jul 2025 21:36:41 -0500 |
| Subject: drm/amd/display: Add null pointer check in |
| mod_hdcp_hdcp1_create_session() |
| |
| From: Chenyuan Yang <chenyuan0y@gmail.com> |
| |
| [ Upstream commit 7a2ca2ea64b1b63c8baa94a8f5deb70b2248d119 ] |
| |
| The function mod_hdcp_hdcp1_create_session() calls the function |
| get_first_active_display(), but does not check its return value. |
| The return value is a null pointer if the display list is empty. |
| This will lead to a null pointer dereference. |
| |
| Add a null pointer check for get_first_active_display() and return |
| MOD_HDCP_STATUS_DISPLAY_NOT_FOUND if the function return null. |
| |
| This is similar to the commit c3e9826a2202 |
| ("drm/amd/display: Add null pointer check for get_first_active_display()"). |
| |
| Fixes: 2deade5ede56 ("drm/amd/display: Remove hdcp display state with mst fix") |
| Signed-off-by: Chenyuan Yang <chenyuan0y@gmail.com> |
| Reviewed-by: Alex Hung <alex.hung@amd.com> |
| Tested-by: Dan Wheeler <daniel.wheeler@amd.com> |
| Signed-off-by: Alex Deucher <alexander.deucher@amd.com> |
| (cherry picked from commit 5e43eb3cd731649c4f8b9134f857be62a416c893) |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| diff --git a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c |
| index 7f8f127e7722..ab6964ca1c2b 100644 |
| --- a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c |
| +++ b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c |
| @@ -260,6 +260,9 @@ enum mod_hdcp_status mod_hdcp_hdcp1_create_session(struct mod_hdcp *hdcp) |
| return MOD_HDCP_STATUS_FAILURE; |
| } |
| |
| + if (!display) |
| + return MOD_HDCP_STATUS_DISPLAY_NOT_FOUND; |
| + |
| hdcp_cmd = (struct ta_hdcp_shared_memory *)psp->hdcp_context.context.mem_context.shared_buf; |
| |
| mutex_lock(&psp->hdcp_context.mutex); |
| -- |
| 2.50.1 |
| |