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 <[email protected]>
---
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