From 2d9bbba0e10642a149297498c4e03fc43bac1280 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 21 Apr 2004 12:18:42 +0000 Subject: bug from Linux kernel list caught by checker --- linux-core/i810_dma.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'linux-core/i810_dma.c') diff --git a/linux-core/i810_dma.c b/linux-core/i810_dma.c index 651b0808..308d28eb 100644 --- a/linux-core/i810_dma.c +++ b/linux-core/i810_dma.c @@ -1275,12 +1275,14 @@ int i810_dma_mc(struct inode *inode, struct file *filp, if (copy_from_user(&mc, (drm_i810_mc_t *)arg, sizeof(mc))) return -EFAULT; - if (!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) { DRM_ERROR("i810_dma_mc called without lock held\n"); return -EINVAL; } + if (mc.idx >= dma->buf_count || mc.idx < 0) + return -EINVAL; + i810_dma_dispatch_mc(dev, dma->buflist[mc.idx], mc.used, mc.last_render ); -- cgit v1.2.3