From 41485fea7c6061cca9d2706f39fa425da291b260 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Sat, 27 Jul 2013 12:16:56 -0700 Subject: [PATCH] mesa: Don't call driver RenderTexture for invalid zoffset This fixes the segfault in the 'invalid slice of 3D texture' and 'invalid layer of an array texture' subtests of piglit's fbo-incomplete test. The 'invalid layer of an array texture' subtest still fails. v2: Fix off-by-one comparison error noticed by Chris Forbes. Also, 1D_ARRAY textures have Depth == 1. Instead, compare against Height. Signed-off-by: Ian Romanick Reviewed-by: Kenneth Graunke [v1] Cc: "9.1 9.2" mesa-stable@lists.freedesktop.org --- src/mesa/main/fbobject.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index 8f70a20f14b..06cc586c431 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -355,6 +355,12 @@ driver_RenderTexture_is_safe(const struct gl_renderbuffer_attachment *att) if (texImage->Width == 0 || texImage->Height == 0 || texImage->Depth == 0) return false; + if ((texImage->TexObject->Target == GL_TEXTURE_1D_ARRAY + && att->Zoffset >= texImage->Height) + || (texImage->TexObject->Target != GL_TEXTURE_1D_ARRAY + && att->Zoffset >= texImage->Depth)) + return false; + return true; } -- 2.30.2