tgsi: fix out-of-bounds access for cube arrays
authorIlia Mirkin <imirkin@alum.mit.edu>
Thu, 26 Mar 2015 23:06:37 +0000 (19:06 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Fri, 27 Mar 2015 01:02:09 +0000 (21:02 -0400)
The CUBE_ARRAY case uses r[4]. Make sure that the stack variable is
there.

Noticed by Coverity.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
src/gallium/auxiliary/tgsi/tgsi_exec.c

index 8d08059deca4ce37a4e643cff2675228f47632a1..d9e40506afa7ca613740e1d728a97f4dfadf5ddc 100644 (file)
@@ -2344,7 +2344,7 @@ exec_sample(struct tgsi_exec_machine *mach,
 {
    const uint resource_unit = inst->Src[1].Register.Index;
    const uint sampler_unit = inst->Src[2].Register.Index;
-   union tgsi_exec_channel r[4], c1;
+   union tgsi_exec_channel r[5], c1;
    const union tgsi_exec_channel *lod = &ZeroVec;
    enum tgsi_sampler_control control = tgsi_sampler_lod_none;
    uint chan;