Explorar o código

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 %!s(int64=16) %!d(string=hai) anos
pai
achega
7e78f72524
Modificáronse 1 ficheiros con 4 adicións e 0 borrados
  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);