diff options
author | José Fonseca <[email protected]> | 2010-06-18 17:37:37 +0100 |
---|---|---|
committer | José Fonseca <[email protected]> | 2010-06-18 17:37:37 +0100 |
commit | d7f4250333f3649d170d71bfdc5f2faba4e8c5f8 (patch) | |
tree | 16c5cd22a912b209bb9325a66707cf8c1e042e29 | |
parent | 17c9d7eea7b3365c59455a731fcb81e69bb86ce2 (diff) |
llvmpipe: Fix pointer dereference after free.
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_state_fs.c | 3 |
1 files changed, 2 insertions, 1 deletions
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); |