From e2fa1ca5e102bc4187d494dc11f202d93495de59 Mon Sep 17 00:00:00 2001
From: Yuri Kunde Schlesner <yuriks@yuriks.net>
Date: Fri, 10 Feb 2017 20:51:09 -0800
Subject: [PATCH] video_core: Fix benign out-of-bounds indexing of array
 (#2553)

The resulting pointer wasn't written to unless the index was verified as
valid, but that's still UB and triggered debug checks in MSVC.

Reported by garrettboast on IRC
---
 src/video_core/shader/shader.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/video_core/shader/shader.cpp b/src/video_core/shader/shader.cpp
index c860375a1..60c5b9ad5 100644
--- a/src/video_core/shader/shader.cpp
+++ b/src/video_core/shader/shader.cpp
@@ -39,9 +39,8 @@ OutputVertex OutputVertex::FromAttributeBuffer(const RasterizerRegs& regs, Attri
 
         for (unsigned comp = 0; comp < 4; ++comp) {
             RasterizerRegs::VSOutputAttributes::Semantic semantic = semantics[comp];
-            float24* out = &vertex_slots[semantic];
             if (semantic < vertex_slots.size()) {
-                *out = input.attr[i][comp];
+                vertex_slots[semantic] = input.attr[i][comp];
             } else if (semantic != RasterizerRegs::VSOutputAttributes::INVALID) {
                 LOG_ERROR(HW_GPU, "Invalid/unknown semantic id: %u", (unsigned int)semantic);
             }