summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2016-01-19 14:37:50 +0100
committerDave Airlie <airlied@redhat.com>2016-02-10 12:01:38 +1000
commitad4f0f1941677c6cd78bcd14348cd99ae7dd7527 (patch)
treed78ef0e6084827c64206f7f3664dadcf1c91417d
parentf58e985a63d1ac579bb3bb48cc49ec0fdff7d3ed (diff)
renderer: reject large LOD values
Or we could sit for a very long time in some further loops. Fix found thanks to american fuzzy lop. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
-rw-r--r--src/vrend_renderer.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c
index 5374f09..ab60729 100644
--- a/src/vrend_renderer.c
+++ b/src/vrend_renderer.c
@@ -3935,6 +3935,8 @@ static int check_resource_valid(struct vrend_renderer_resource_create_args *args
/* buffer and rect textures can't have mipmaps */
if (args->target == PIPE_BUFFER || args->target == PIPE_TEXTURE_RECT)
return -1;
+ if (args->last_level > (floor(log2(MAX2(args->width, args->width))) + 1))
+ return -1;
}
if (args->flags != 0 && args->flags != VIRGL_RESOURCE_Y_0_TOP)
return -1;