aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSachin Kamat <sachin.kamat@linaro.org>2012-09-18 06:21:30 -0400
committerInki Dae <inki.dae@samsung.com>2012-10-03 21:06:01 -0400
commit53bd5556547d72fb9c572d66c3b7bfe0f096972b (patch)
treef1e190dc74fd584dc2466233643dc1f2ad40bd99
parent291257cf4cb0da1e32b672b88e73d22d845c8f93 (diff)
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>
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_connector.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_connector.c b/drivers/gpu/drm/exynos/exynos_drm_connector.c
index 59e79ff4b2eb..87cf3783efdc 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_connector.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_connector.c
@@ -150,8 +150,12 @@ static int exynos_drm_connector_get_modes(struct drm_connector *connector)
150 count = drm_add_edid_modes(connector, edid); 150 count = drm_add_edid_modes(connector, edid);
151 kfree(edid); 151 kfree(edid);
152 } else { 152 } else {
153 struct drm_display_mode *mode = drm_mode_create(connector->dev);
154 struct exynos_drm_panel_info *panel; 153 struct exynos_drm_panel_info *panel;
154 struct drm_display_mode *mode = drm_mode_create(connector->dev);
155 if (!mode) {
156 DRM_ERROR("failed to create a new display mode.\n");
157 return 0;
158 }
155 159
156 if (display_ops->get_panel) 160 if (display_ops->get_panel)
157 panel = display_ops->get_panel(manager->dev); 161 panel = display_ops->get_panel(manager->dev);