summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2010-06-18 17:37:37 +0100
committerJosé Fonseca <jfonseca@vmware.com>2010-06-18 17:37:37 +0100
commitd7f4250333f3649d170d71bfdc5f2faba4e8c5f8 (patch)
tree16c5cd22a912b209bb9325a66707cf8c1e042e29 /src
parent17c9d7eea7b3365c59455a731fcb81e69bb86ce2 (diff)
llvmpipe: Fix pointer dereference after free.
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state_fs.c3
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 48c7754e41..c3ecd77830 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);