tgsi: fix out of bounds access
authorRob Clark <robclark@freedesktop.org>
Thu, 26 May 2016 14:22:33 +0000 (10:22 -0400)
committerRob Clark <robclark@freedesktop.org>
Thu, 26 May 2016 19:17:49 +0000 (15:17 -0400)
Not sure why coverity calls this an out-of-bounds read vs out-of-bounds
write.

CID 1358920 (#1 of 1): Out-of-bounds read (OVERRUN)9. overrun-local:
Overrunning array r of 3 16-byte elements at element index 3 (byte
offset 48) using index chan (which evaluates to 3).

Signed-off-by: Rob Clark <robclark@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/auxiliary/tgsi/tgsi_exec.c

index baf4a897c50a17307e7a3422dbc4d4f9d6f7361d..289fe043b7d0b802ac37e12fde52eedaf87c7084 100644 (file)
@@ -3851,7 +3851,7 @@ static void
 exec_load_mem(struct tgsi_exec_machine *mach,
               const struct tgsi_full_instruction *inst)
 {
-   union tgsi_exec_channel r[3];
+   union tgsi_exec_channel r[4];
    uint chan;
    char *ptr = mach->LocalMem;
    uint32_t offset;