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 IRCpull/1/head
parent
2889372e47
commit
e2fa1ca5e1
|
|
@ -39,9 +39,8 @@ OutputVertex OutputVertex::FromAttributeBuffer(const RasterizerRegs& regs, Attri
|
||||||
|
|
||||||
for (unsigned comp = 0; comp < 4; ++comp) {
|
for (unsigned comp = 0; comp < 4; ++comp) {
|
||||||
RasterizerRegs::VSOutputAttributes::Semantic semantic = semantics[comp];
|
RasterizerRegs::VSOutputAttributes::Semantic semantic = semantics[comp];
|
||||||
float24* out = &vertex_slots[semantic];
|
|
||||||
if (semantic < vertex_slots.size()) {
|
if (semantic < vertex_slots.size()) {
|
||||||
*out = input.attr[i][comp];
|
vertex_slots[semantic] = input.attr[i][comp];
|
||||||
} else if (semantic != RasterizerRegs::VSOutputAttributes::INVALID) {
|
} else if (semantic != RasterizerRegs::VSOutputAttributes::INVALID) {
|
||||||
LOG_ERROR(HW_GPU, "Invalid/unknown semantic id: %u", (unsigned int)semantic);
|
LOG_ERROR(HW_GPU, "Invalid/unknown semantic id: %u", (unsigned int)semantic);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue