Kaynağa Gözat

drm: Avoid oops in DRM_IOCTL_RM_DRAW if a bad handle is supplied.

Signed-off-by: Eric Anholt <eric@anholt.net>
Acked-by: Michel Dänzer <michel@tungstengraphics.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Eric Anholt 16 yıl önce
ebeveyn
işleme
7e78f72524
1 değiştirilmiş dosya ile 4 ekleme ve 0 silme
  1. 4 0
      drivers/gpu/drm/drm_drawable.c

+ 4 - 0
drivers/gpu/drm/drm_drawable.c

@@ -81,6 +81,10 @@ int drm_rmdraw(struct drm_device *dev, void *data, struct drm_file *file_priv)
 	spin_lock_irqsave(&dev->drw_lock, irqflags);
 
 	info = drm_get_drawable_info(dev, draw->handle);
+	if (info == NULL) {
+		spin_unlock_irqrestore(&dev->drw_lock, irqflags);
+		return -EINVAL;
+	}
 	drm_free(info->rects, info->num_rects * sizeof(struct drm_clip_rect),
 			DRM_MEM_BUFS);
 	drm_free(info, sizeof(struct drm_drawable_info), DRM_MEM_BUFS);