diff options
author | Tilman Sauerbeck <tilman@freedesktop.org> | 2006-06-28 16:26:20 +0000 |
---|---|---|
committer | Tilman Sauerbeck <tilman@freedesktop.org> | 2006-06-28 16:26:20 +0000 |
commit | 6c334754244f11a1bfc01b9009c55ee5916f7dc7 (patch) | |
tree | 71aa82e61518c5b594d90cc53b9a8aea0b454f93 /src | |
parent | 7a7aa2aabb90a2f6833f582ff4701f3840d399f7 (diff) | |
download | external_mesa3d-6c334754244f11a1bfc01b9009c55ee5916f7dc7.zip external_mesa3d-6c334754244f11a1bfc01b9009c55ee5916f7dc7.tar.gz external_mesa3d-6c334754244f11a1bfc01b9009c55ee5916f7dc7.tar.bz2 |
propagate errors from parse_generic_attrib_num in parse_attrib_binding (-> don't segfault when you're trying to access invalid generic attributes
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/shader/arbprogparse.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mesa/shader/arbprogparse.c b/src/mesa/shader/arbprogparse.c index 66ea96b..12db646 100644 --- a/src/mesa/shader/arbprogparse.c +++ b/src/mesa/shader/arbprogparse.c @@ -1536,7 +1536,10 @@ parse_attrib_binding(GLcontext * ctx, GLubyte ** inst, case VERTEX_ATTRIB_GENERIC: { GLuint attrib; - if (!parse_generic_attrib_num(ctx, inst, Program, &attrib)) { + + err = parse_generic_attrib_num(ctx, inst, Program, &attrib); + + if (!err) { *is_generic = 1; /* Add VERT_ATTRIB_GENERIC0 here because ARB_vertex_program's * attributes do not alias the conventional vertex @@ -1556,7 +1559,6 @@ parse_attrib_binding(GLcontext * ctx, GLubyte ** inst, } } - /* Can this even happen? */ if (err) { const char *msg = "Bad attribute binding"; _mesa_set_program_error(ctx, Program->Position, msg); |