Skip to content

Commit

Permalink
drm/i810: Prevent underflow in ioctl
Browse files Browse the repository at this point in the history
The "used" variables here come from the user in the ioctl and it can be
negative.  It could result in an out of bounds write.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20191004102251.GC823@mwanda
Cc: stable@vger.kernel.org
  • Loading branch information
Dan Carpenter authored and Chris Wilson committed Oct 4, 2019
1 parent ba2a1c8 commit 4f69851
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/gpu/drm/i810/i810_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -728,7 +728,7 @@ static void i810_dma_dispatch_vertex(struct drm_device *dev,
if (nbox > I810_NR_SAREA_CLIPRECTS)
nbox = I810_NR_SAREA_CLIPRECTS;

if (used > 4 * 1024)
if (used < 0 || used > 4 * 1024)
used = 0;

if (sarea_priv->dirty)
Expand Down Expand Up @@ -1048,7 +1048,7 @@ static void i810_dma_dispatch_mc(struct drm_device *dev, struct drm_buf *buf, in
if (u != I810_BUF_CLIENT)
DRM_DEBUG("MC found buffer that isn't mine!\n");

if (used > 4 * 1024)
if (used < 0 || used > 4 * 1024)
used = 0;

sarea_priv->dirty = 0x7f;
Expand Down

0 comments on commit 4f69851

Please sign in to comment.