Mesa (master): mesa: Fix buffer overflow when parsing generic vertex attributes.
Jose Fonseca
jrfonseca at kemper.freedesktop.org
Wed Apr 22 17:19:19 UTC 2009
Module: Mesa
Branch: master
Commit: fa92756400ccfbb3f0201df634feb45ab4f98352
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fa92756400ccfbb3f0201df634feb45ab4f98352
Author: Brian Paul <brianp at vmware.com>
Date: Wed Apr 22 18:16:03 2009 +0100
mesa: Fix buffer overflow when parsing generic vertex attributes.
---
src/mesa/shader/arbprogparse.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/mesa/shader/arbprogparse.c b/src/mesa/shader/arbprogparse.c
index b47bf36..c7a0310 100644
--- a/src/mesa/shader/arbprogparse.c
+++ b/src/mesa/shader/arbprogparse.c
@@ -1513,10 +1513,16 @@ generic_attrib_check(struct var_cache *vc_head)
curr = vc_head;
while (curr) {
if (curr->type == vt_attrib) {
- if (curr->attrib_is_generic)
- genericAttrib[ curr->attrib_binding ] = GL_TRUE;
- else
+ if (curr->attrib_is_generic) {
+ GLuint attr = (curr->attrib_binding == 0)
+ ? 0 : (curr->attrib_binding - VERT_ATTRIB_GENERIC0);
+ assert(attr < MAX_VERTEX_PROGRAM_ATTRIBS);
+ genericAttrib[attr] = GL_TRUE;
+ }
+ else {
+ assert(curr->attrib_binding < MAX_VERTEX_PROGRAM_ATTRIBS);
explicitAttrib[ curr->attrib_binding ] = GL_TRUE;
+ }
}
curr = curr->next;
More information about the mesa-commit
mailing list