Răsfoiți Sursa

drm/exynos: Fix potential NULL pointer dereference

drm_mode_create() returns NULL if it fails to create
a new display mode. Check the value returned to avoid NULL
pointer deferencing later.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Sachin Kamat 12 ani în urmă
părinte
comite
53bd555654
1 a modificat fișierele cu 5 adăugiri și 1 ștergeri
  1. 5 1
      drivers/gpu/drm/exynos/exynos_drm_connector.c

+ 5 - 1
drivers/gpu/drm/exynos/exynos_drm_connector.c

@@ -150,8 +150,12 @@ static int exynos_drm_connector_get_modes(struct drm_connector *connector)
 		count = drm_add_edid_modes(connector, edid);
 		kfree(edid);
 	} else {
-		struct drm_display_mode *mode = drm_mode_create(connector->dev);
 		struct exynos_drm_panel_info *panel;
+		struct drm_display_mode *mode = drm_mode_create(connector->dev);
+		if (!mode) {
+			DRM_ERROR("failed to create a new display mode.\n");
+			return 0;
+		}
 
 		if (display_ops->get_panel)
 			panel = display_ops->get_panel(manager->dev);