summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Dwayne Slater2016-02-20 19:03:14 -0500
committerGravatar Dwayne Slater2016-02-20 19:03:14 -0500
commited8072b48bf6eacb0eea161f87746086401b5c08 (patch)
treeadfc5797bb6158413bf5abb0b5b162acd8f51c75 /src
parentAdd support for padding vertex attributes (diff)
downloadyuzu-ed8072b48bf6eacb0eea161f87746086401b5c08.tar.gz
yuzu-ed8072b48bf6eacb0eea161f87746086401b5c08.tar.xz
yuzu-ed8072b48bf6eacb0eea161f87746086401b5c08.zip
Fix out of bounds array access when loading a component >= 12
Diffstat (limited to 'src')
-rw-r--r--src/video_core/command_processor.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/video_core/command_processor.cpp b/src/video_core/command_processor.cpp
index 51abeeaba..9d8c86236 100644
--- a/src/video_core/command_processor.cpp
+++ b/src/video_core/command_processor.cpp
@@ -157,8 +157,11 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
157 157
158 // TODO: What happens if a loader overwrites a previous one's data? 158 // TODO: What happens if a loader overwrites a previous one's data?
159 for (unsigned component = 0; component < loader_config.component_count; ++component) { 159 for (unsigned component = 0; component < loader_config.component_count; ++component) {
160 if (component >= 12) 160 if (component >= 12) {
161 LOG_ERROR(HW_GPU, "Overflow in the vertex attribute loader %u trying to load component %u", loader, component); 161 LOG_ERROR(HW_GPU, "Overflow in the vertex attribute loader %u trying to load component %u", loader, component);
162 continue;
163 }
164
162 u32 attribute_index = loader_config.GetComponent(component); 165 u32 attribute_index = loader_config.GetComponent(component);
163 if (attribute_index < 12) { 166 if (attribute_index < 12) {
164 vertex_attribute_sources[attribute_index] = load_address; 167 vertex_attribute_sources[attribute_index] = load_address;