diff mbox

drm: Check if the allocation has succeeded before dereferencing newmode

Message ID 1393891147-17958-1-git-send-email-damien.lespiau@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Lespiau, Damien March 3, 2014, 11:59 p.m. UTC
We allocate memory in drm_display_mode_from_vic_index() and use it
without checking the pointer is valid. Fix that.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
---
 drivers/gpu/drm/drm_edid.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Alex Deucher March 4, 2014, 3:06 p.m. UTC | #1
On Mon, Mar 3, 2014 at 6:59 PM, Damien Lespiau <damien.lespiau@intel.com> wrote:
> We allocate memory in drm_display_mode_from_vic_index() and use it
> without checking the pointer is valid. Fix that.
>
> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

> ---
>  drivers/gpu/drm/drm_edid.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index f8d8a1d..f3cde90 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -2580,6 +2580,9 @@ drm_display_mode_from_vic_index(struct drm_connector *connector,
>                 return NULL;
>
>         newmode = drm_mode_duplicate(dev, &edid_cea_modes[cea_mode]);
> +       if (!newmode)
> +               return NULL;
> +
>         newmode->vrefresh = 0;
>
>         return newmode;
> --
> 1.8.3.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index f8d8a1d..f3cde90 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -2580,6 +2580,9 @@  drm_display_mode_from_vic_index(struct drm_connector *connector,
 		return NULL;
 
 	newmode = drm_mode_duplicate(dev, &edid_cea_modes[cea_mode]);
+	if (!newmode)
+		return NULL;
+
 	newmode->vrefresh = 0;
 
 	return newmode;