diff mbox

drm/i810: off by one in i810_dma_vertex()

Message ID 20180703123015.kma7v7rwtdy4urce@kili.mountain (mailing list archive)
State New, archived
Headers show

Commit Message

Dan Carpenter July 3, 2018, 12:30 p.m. UTC
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>

Comments

Daniel Vetter July 3, 2018, 1:01 p.m. UTC | #1
On Tue, Jul 03, 2018 at 03:30:16PM +0300, Dan Carpenter wrote:
> 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>

This driver is a full-on root hole no matter what, but applied to appease
the checkers :-)

Thanks, Daniel

> 
> diff --git a/drivers/gpu/drm/i810/i810_dma.c b/drivers/gpu/drm/i810/i810_dma.c
> index 576a417690d4..3b378936f575 100644
> --- a/drivers/gpu/drm/i810/i810_dma.c
> +++ b/drivers/gpu/drm/i810/i810_dma.c
> @@ -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,
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/drivers/gpu/drm/i810/i810_dma.c b/drivers/gpu/drm/i810/i810_dma.c
index 576a417690d4..3b378936f575 100644
--- a/drivers/gpu/drm/i810/i810_dma.c
+++ b/drivers/gpu/drm/i810/i810_dma.c
@@ -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,