drm/i810: off by one in i810_dma_vertex()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 3 Jul 2018 12:30:16 +0000 (15:30 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 3 Jul 2018 13:00:42 +0000 (15:00 +0200)
If vertex->idx == dma->buf_count then we end up reading one element
beyond the end of the dma->buflist[] array.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20180703123015.kma7v7rwtdy4urce@kili.mountain
drivers/gpu/drm/i810/i810_dma.c

index 576a417690d4774df01345e956237bc868f6fff1..3b378936f57559fbfe80a30a6b14ee00aa9f7136 100644 (file)
@@ -934,7 +934,7 @@ static int i810_dma_vertex(struct drm_device *dev, void *data,
        DRM_DEBUG("idx %d used %d discard %d\n",
                  vertex->idx, vertex->used, vertex->discard);
 
-       if (vertex->idx < 0 || vertex->idx > dma->buf_count)
+       if (vertex->idx < 0 || vertex->idx >= dma->buf_count)
                return -EINVAL;
 
        i810_dma_dispatch_vertex(dev,