diff options
author | Matt Turner <mattst88@gmail.com> | 2016-06-22 23:11:27 -0700 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2016-07-08 14:03:19 -0700 |
commit | 2c866686942960046b406502b8abc3cef8b011fa (patch) | |
tree | c386875d2b4a5571d8390766b8992b30d18114ee /src/glx/indirect_vertex_array.c | |
parent | b36644bae611d608cee8ef0d5dd1200313234b73 (diff) |
glx: Undo memory allocation checking damage.
This partially reverts commit d41f5396f3cb619729021390c273f838d92f11fb.
That untested commit broke the tex-skipped-unit piglit test and the
arbvparray Mesa demo when run with indirect GLX.
state->array_state is used during initialization, so its assignment cannot be
moved to the end of the function.
The backtrace looked like:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff77c7a5c in __glXGetActiveTextureUnit (state=0x6270e0) at indirect_vertex_array.c:1952
1952 return state->array_state->active_texture_unit;
(gdb) bt
0 0x00007ffff77c7a5c in __glXGetActiveTextureUnit (state=0x6270e0) at indirect_vertex_array.c:1952
1 0x00007ffff77cbf62 in get_client_data (gc=0x626f50, cap=34018, data=0x7fffffffd7a0) at single2.c:159
2 0x00007ffff77cce51 in __indirect_glGetIntegerv (val=34018, i=0x7fffffffd830) at single2.c:498
3 0x00007ffff77c4340 in __glXInitVertexArrayState (gc=0x626f50) at indirect_vertex_array.c:193
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'src/glx/indirect_vertex_array.c')
-rw-r--r-- | src/glx/indirect_vertex_array.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/glx/indirect_vertex_array.c b/src/glx/indirect_vertex_array.c index 0374093b0e..a7073433a5 100644 --- a/src/glx/indirect_vertex_array.c +++ b/src/glx/indirect_vertex_array.c @@ -151,6 +151,7 @@ __glXInitVertexArrayState(struct glx_context * gc) arrays = calloc(1, sizeof(struct array_state_vector)); + state->array_state = arrays; if (arrays == NULL) { __glXSetError(gc, GL_OUT_OF_MEMORY); @@ -299,11 +300,6 @@ __glXInitVertexArrayState(struct glx_context * gc) __glXSetError(gc, GL_OUT_OF_MEMORY); return; } - - /* Everything went ok so we put vertex array state in place - * in context. - */ - state->array_state = arrays; } |