Fix out of bounds array access when loading a component >= 12

This commit is contained in:
Dwayne Slater 2016-02-20 19:03:14 -05:00
parent 82fc075ff6
commit ed8072b48b
1 changed files with 4 additions and 1 deletions

View File

@ -157,8 +157,11 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
// TODO: What happens if a loader overwrites a previous one's data? // TODO: What happens if a loader overwrites a previous one's data?
for (unsigned component = 0; component < loader_config.component_count; ++component) { for (unsigned component = 0; component < loader_config.component_count; ++component) {
if (component >= 12) if (component >= 12) {
LOG_ERROR(HW_GPU, "Overflow in the vertex attribute loader %u trying to load component %u", loader, component); LOG_ERROR(HW_GPU, "Overflow in the vertex attribute loader %u trying to load component %u", loader, component);
continue;
}
u32 attribute_index = loader_config.GetComponent(component); u32 attribute_index = loader_config.GetComponent(component);
if (attribute_index < 12) { if (attribute_index < 12) {
vertex_attribute_sources[attribute_index] = load_address; vertex_attribute_sources[attribute_index] = load_address;