OSDN Git Service

radeonsi: fix an out-of-bounds read reported by ASAN
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Fri, 16 Nov 2018 16:20:26 +0000 (17:20 +0100)
committerEmil Velikov <emil.l.velikov@gmail.com>
Tue, 20 Nov 2018 10:56:48 +0000 (10:56 +0000)
We read 4 values out of sample_locs_8x, so make sure the array is
big enough.

Fixes: ac76aeef20 ("radeonsi: switch back to standard DX sample positions")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 46a59ce0262a44d6520787741085a716c99200ed)

src/gallium/drivers/radeonsi/si_state_msaa.c

index b741bca..e6d97fe 100644 (file)
@@ -101,6 +101,10 @@ static const uint64_t centroid_priority_4x = 0x3210321032103210ull;
 static const uint32_t sample_locs_8x[] = {
        FILL_SREG(-3,-5,   5, 1,  -1, 3,   7,-7),
        FILL_SREG(-7,-1,   3, 7,  -5, 5,   1,-3),
+       /* The following are unused by hardware, but we emit them to IBs
+        * instead of multiple SET_CONTEXT_REG packets. */
+       0,
+       0,
 };
 static const uint64_t centroid_priority_8x = 0x3546012735460127ull;