Browse Source

drm: use drms ioctl cmd not what we get passed from userspace.

This enforces us to use the drm ioctl types so read/write works correctly and not believe
what userspace tells us.

It does this hopefully without breaking the drm api.

Fixes bug from thread: BUG: unable to handle kernel NULL pointer dereference (drm_getunique)

Signed-off-by: Dave Airlie <airlied@redhat.com>
Johannes Weiner 17 years ago
parent
commit
41ee2ff404
1 changed files with 2 additions and 0 deletions
  1. 2 0
      drivers/char/drm/drm_drv.c

+ 2 - 0
drivers/char/drm/drm_drv.c

@@ -475,6 +475,8 @@ int drm_ioctl(struct inode *inode, struct file *filp,
 	else
 		goto err_i1;
 
+	/* Do not trust userspace, use our own definition */
+	cmd = ioctl->cmd;
 	func = ioctl->func;
 	/* is there a local override? */
 	if ((nr == DRM_IOCTL_NR(DRM_IOCTL_DMA)) && dev->driver->dma_ioctl)