aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/shader/shader.cpp
diff options
context:
space:
mode:
authorYuri Kunde Schlesner <yuriks@yuriks.net>2017-02-10 20:51:09 -0800
committerGitHub <noreply@github.com>2017-02-10 20:51:09 -0800
commite2fa1ca5e102bc4187d494dc11f202d93495de59 (patch)
tree16c2ba1fddc3cb6cd6548d08dc65aa56b3b5da09 /src/video_core/shader/shader.cpp
parent2889372e47624e368df0d0361cb38b8100f047dd (diff)
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
Diffstat (limited to 'src/video_core/shader/shader.cpp')
-rw-r--r--src/video_core/shader/shader.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/video_core/shader/shader.cpp b/src/video_core/shader/shader.cpp
index c860375a1f..60c5b9ad5d 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);
}