[lvc-project] [PATCH] drm/radeon: fix possible NULL pointer dereference in atombios_set_encoder_crtc_source()

Igor Artemiev Igor.A.Artemiev at mcst.ru
Wed Apr 23 12:31:42 UTC 2025


The function radeon_get_connector_for_encoder() can return NULL
and its result is checked before dereference in all functions
except atombios_set_encoder_crtc_source().

Add a NULL pointer check before dereference.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: a4863ca93ccc ("drm/radeon/kms/DCE4.1: fix Select_CrtcSource EncodeMode setting for DP bridges (v2)")
Signed-off-by: Igor Artemiev <Igor.A.Artemiev at mcst.ru>
---
 drivers/gpu/drm/radeon/atombios_encoders.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
index d1c5e471bdca..0cda4e6749f0 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -1913,9 +1913,9 @@ atombios_set_encoder_crtc_source(struct drm_encoder *encoder)
 			if (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE) {
 				struct drm_connector *connector = radeon_get_connector_for_encoder(encoder);
 
-				if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)
+				if (connector && connector->connector_type == DRM_MODE_CONNECTOR_LVDS)
 					args.v2.ucEncodeMode = ATOM_ENCODER_MODE_LVDS;
-				else if (connector->connector_type == DRM_MODE_CONNECTOR_VGA)
+				else if (connector && connector->connector_type == DRM_MODE_CONNECTOR_VGA)
 					args.v2.ucEncodeMode = ATOM_ENCODER_MODE_CRT;
 				else
 					args.v2.ucEncodeMode = atombios_get_encoder_mode(encoder);
-- 
2.39.2




More information about the amd-gfx mailing list