From d7f4250333f3649d170d71bfdc5f2faba4e8c5f8 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Fri, 18 Jun 2010 17:37:37 +0100 Subject: llvmpipe: Fix pointer dereference after free. --- src/gallium/drivers/llvmpipe/lp_state_fs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/gallium') diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c index 48c7754e41a..c3ecd77830b 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_fs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c @@ -1079,8 +1079,9 @@ llvmpipe_delete_fs_state(struct pipe_context *pipe, void *fs) li = first_elem(&shader->variants); while(!at_end(&shader->variants, li)) { + struct lp_fs_variant_list_item *next = next_elem(li); remove_shader_variant(llvmpipe, li->base); - li = next_elem(li); + li = next; } assert(shader->variants_cached == 0); -- cgit v1.2.3