llvmpipe: Do not need to free anything if there is no geometry shader.

If gs is null, then freeing state->shader.tokens would result in a null
dereference.

Fixes "Dereference after null check" defect reported by Coverity.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
Vinson Lee 2013-08-04 01:18:28 -07:00
parent 60b567ee59
commit b57c1e4b86
1 changed files with 5 additions and 2 deletions

View File

@ -100,8 +100,11 @@ llvmpipe_delete_gs_state(struct pipe_context *pipe, void *gs)
struct lp_geometry_shader *state =
(struct lp_geometry_shader *)gs;
draw_delete_geometry_shader(llvmpipe->draw,
(state) ? state->draw_data : 0);
if (!state) {
return;
}
draw_delete_geometry_shader(llvmpipe->draw, state->draw_data);
FREE( (void *)state->shader.tokens );
FREE(state);
}