[lvc-project] [PATCH] drm/radeon: Add NULL pointer check for enc_priv in atombios_set_encoder_crtc_source()

Alexey Velichayshiy a.velichayshiy at ispras.ru
Sat Jun 20 21:31:45 MSK 2026


The dig pointer for radeon_encoder->enc_priv is initialized in
radeon_add_atom_encoder(). An error during initialization may
leave radeon_encoder->enc_priv as NULL, leading to a NULL
pointer dereference in atombios_set_encoder_crtc_source().
Add a NULL pointer check for dig before dereferencing it,
returning early if it is NULL.

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

Fixes: f28cf33945cc ("drm/kms/radeon: pick digitial encoders smarter. (v3)")
Signed-off-by: Alexey Velichayshiy <a.velichayshiy at ispras.ru>
---
 drivers/gpu/drm/radeon/atombios_encoders.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
index 5cfd8fcfa5e8..8b15c1e0d41f 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -1931,6 +1931,8 @@ atombios_set_encoder_crtc_source(struct drm_encoder *encoder)
 			case ENCODER_OBJECT_ID_INTERNAL_UNIPHY3:
 			case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA:
 				dig = radeon_encoder->enc_priv;
+				if (!dig)
+					return;
 				switch (dig->dig_encoder) {
 				case 0:
 					args.v2.ucEncoderID = ASIC_INT_DIG1_ENCODER_ID;
-- 
2.43.0




More information about the lvc-project mailing list